我正在使用JPA 2.0开发Web应用程序,并在每个请求中打开和关闭EntityManager。用户可以创建新实体并设置id-field(该字段具有含义,我无法更改表结构)。要存储新实体,我必须使用EntityManager的“merge”方法,但是当已经存在具有相同id的现有实体时,它才会更新。 如果已经存在具有相同ID的实体,我是否必须手动检查,或者可以更好地完成此操作?或者我的做法还有其他问题吗?
答案 0 :(得分:1)
如果您使用persist
方法,则会为重复的ID引发EntityPersistsException
。
也就是说,从用户的角度来看,他越早知道ID已经被使用越好(最好是在更新字段时用ajax检查它)。