JPA版本列为';t合并后更新()
我正在通过JPA版本列为';t合并后更新(),jpa,version,Jpa,Version,我正在通过EntityManager#merge()更新一个实体,但返回的实体中没有正确反映JPA的新JPA版本号 @Stateless @TransactionAttribute(TransactionAttributeType.REQUIRED) public class LeadService { @PersistenceContext(name = "joose") private EntityManager em; public Lead createOrUp
EntityManager#merge()
更新一个实体,但返回的实体中没有正确反映JPA的新JPA版本号
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class LeadService {
@PersistenceContext(name = "joose")
private EntityManager em;
public Lead createOrUpdateLead(Lead lead) {
if (lead.getId() != null) {
em.merge(lead);
} else {
em.persist(lead);
}
return lead;
}
我该如何处理这件事?谢谢 在
createLeader或updateLead
方法中,如果在操作前后记录lead
的版本,则lead
是否会更改?如果没有,您可以使用em.refresh(lead)
从DB.Do'h获取最新信息。事实上,我刚刚发现了窃听器em.merge(lead)
应该是lead=em.merge(lead)代码>啊,典型的错误。当你发布自己的明显答案时,你介意删除你的问题吗?作为替代方案,您可以发布您的解决方案并接受它作为答案,然后。。。正如@DavidS所指出的,这是一个“经典”错误,而且很可能已经在StOf上被回答了100多次。不,我认为这对谷歌用户来说很有价值