我有一个小的应用程序,我存储实体到数据库。我用下面的方法:
class Entity {
privete id;
String somePropertie;
// getters and setters
}
// In main class
Entity newEntity = new Entity();
newEntity.setSomePropertie("somePropertie");
Entity entity = entityManager.merge(newEntity);
System.out.println("This is id of stored entity:", entity.getId())
这里没有写jpa注释。但是实体被存储到数据库中,但是打印的id是0;如果使用spring驱动的事务,我需要这个实体来更新实体id。
EntityManager.merge(..)获取一个实例并返回一个被管理的实例。对于瞬态实例,它返回一个新实例(不修改原始实例)
所以你的mergeEntity(.)方法应该返回em.merge(entity)
如果我错了请纠正我,但是你试过吗
Entity entity = entityManager.merge(newEntity);
System.out.println("This is id of stored entity:", entity.getId())
在同一事务中?
也尝试将id设置为Long
而不是long
(或Integer
而不是int
;