Java 循环之前或之后的JPA不正确合并
我的功能如下:Java 循环之前或之后的JPA不正确合并,java,hibernate,jpa,Java,Hibernate,Jpa,我的功能如下: @Transactional void changeData(CardTO cardTO){ List<CardTO> sameParentCards = cardFactory.getSameParentCards(cardTO.getParentId()); cardTO.setArchived(true); entityManager.merge(cardTO); for(CardTO c: sameParentCard
@Transactional
void 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;
}
}
}
cardTO.setArchived(true);
entityManager.merge(cardTO);
cardTO = cardFactory.getCardTO(cardTO.getId());
@Transactional
作废更改数据(CardTO CardTO){
列出sameParentCards=cardFactory.getSameParentCards(cardTO.getParentId());
cardTO.setArchived(true);
entityManager.merge(cardTO);
用于(卡到c:sameParentCards)
{
如果(!c.getCardId.equals(cardTO.getCardId()))
{
c、 setParentId(cardTO.getParentId());
实体管理器合并(c);
打破
}
}
}
其中“getSameCards”方法返回父id等于给定卡id的cardTO列表。
此函数的结果不会将“存档”字段保存在数据库中,但在循环内所有内容都正确保存。循环后合并也会得到相同的结果!我的错误在哪里?问题在于将实体保存在一个函数中后没有检索实体。因此,我在合并如下数据后检索了cardTO:
@Transactional
void 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;
}
}
}
cardTO.setArchived(true);
entityManager.merge(cardTO);
cardTO = cardFactory.getCardTO(cardTO.getId());