我的功能是這樣的:@Transactionalvoid changeData(CardTO cardTO){ List<CardTO> sameParentCards = cardFactory.getSameParentCards(cardTO.getParentId()); cardTO.setArchived(true); entityManager.merge(cardTO); for(CardTO c: sameParentCards ) { if(!c.getCardId.equals(cardTO.getCardId())) { c.setParentId(cardTO.getParentId()); entityManager.merge(c); break; } } }其中“getSameCards”方法返回父 ID 等于給定卡 ID 的 cardTO 列表。該函數的結果不會將“已存檔”字段保存在數據庫中,但在循環內所有內容都已正確保存。循環后合并也結果相同!我的錯誤在哪里?
1 回答

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
問題是將實體保存在一個跨國函數中后無法檢索它們。所以我在合并數據后檢索了cardTO,如下所示:
cardTO.setArchived(true);
entityManager.merge(cardTO);
cardTO = cardFactory.getCardTO(cardTO.getId());
添加回答
舉報
0/150
提交
取消