我如何获得合并JPA实体的id



我有一个小的应用程序,我存储实体到数据库。我用下面的方法:

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;

最新更新