我使用 JPA(Hibernate 实现)和在 Linux Ubuntu 18.04 上的 WildFly 17 上运行的 JEE。
我有以下源代码:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public Ave daveAnlegen(Ave ave) {
Ave existingAve = checkExistsAve(ave.getStartDate(), ave.getObjekt());
if (existingAve != null) {
existingAve.setEndDate(ave.getEndDate());
existingAve.setKaufInteressenten(ave.getKaufInteressenten());
existingAve.setAveInvitLinks(ave.getAveInvitLinks());
existingAve.setAngebotType(ave.getAngebotType());
existingAve = this.em.merge(existingAve);
return existingAve;
} else {
ave = this.em.merge(ave);
return ave;
}
}
当我调试代码时,我有一个用例,其中 existingAve 不是 NULL 并且该行
existingAve.setEndDate(ave.getEndDate());
被执行,因此 endDate 从 13.02 更改为 14.02,我希望在该行之后
existingAve = this.em.merge(existingAve);
被执行并且方法完成时,数据库中 EndDate 的值将从 13.02 更改为 14.02,但这不会发生。字段 AngebotType 也是如此:我在该行之后看到
existingAve.setAngebotType(ave.getAngebotType());
字段值从“geschlossen”更改为“offen”,但数据库字段的值不会更改。
欢迎任何建议!
谢谢和亲切的问候:亚历克斯