首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用生成的Ids安全地检查新的JPA恩典的最佳实践

使用生成的Ids安全地检查新的JPA恩典的最佳实践
EN

Stack Overflow用户
提问于 2012-07-30 00:43:41
回答 1查看 123关注 0票数 1

当从用户输入创建新实体时,我不能确定没有其他实体具有相同的数据。我能够找到使用的预定义Ids的唯一示例,因此可以通过调用entityManager.find(id)来检查实体是否存在。如果生成了id,我看到了几种安全保存的方法:

  • 调用entityManager.persist并希望最佳捕获EntityExistsException并吞咽它或显示错误消息。
  • 调用entityManager.merge并让JPA执行checking...will --它总是正常工作吗?
  • 通过查询( jPQL或条件)搜索实体,如果没有找到,则调用entityManager.persist

我的直觉是采用第三种方法,但还有更好的方法吗?

我正在使用JPA 2,并希望避免使用特定于供应商的解决方案(比如Hibernate的SessionManager.saveOrUpdate)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-30 00:54:26

如果您真的无法预测新生成的ID是否是唯一的,那么我肯定会使用第三种方法。

而且,我不认为您需要这样简单的查询的条件,而且在大多数情况下,额外查询的成本不会很高。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11718008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文