根据我的要求,我有自动递增的字段,而不是一个键。在调用存储库save()之后,我需要获取该自动增量字段的值。
merchantEntity = merchantRepository.save(merchantEntity);
merchantEntity.getMerchId() // returns null
但是,有些即时消息无法获取自动增量的值,因此返回null。
这是我的实体类。
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private Integer merchId;
我尝试使用其他几种解决方法,例如在保存后刷新实体。但是结果是一样的。
merchantEntity = merchantRepository.saveAndFlush(entity); // still returns null
merchantEntity = merchantRepository.save(entity);
merchantRepository.flush();
MerchantEntity toBeUpdatedMerchantEntity =
merchantRepository.findOne(merchantEntity.getId()); // still returns null
是否有可能实现我的期望。非常感谢您的帮助。
谢谢
最佳答案
获取此自动递增的值的唯一方法是刷新记录。
因为JPA仅获取主键,因为必须在EntityManager.persist()
之后设置ID。
因此,您必须使用findOne()
或EntityManager.refresh()
重新加载记录