Java JPA:Performant检查实体是否已在DB中

时间:2011-01-03 13:41:37

标签: java jpa entity

使用JPA检查实体是否已在数据库中的最佳方法/最佳做法是什么?

我正在编写一个将主机信息添加到数据库的客户端。例如附加的存储区,hba等...

如果我想为主机添加Lun,我必须检查lun是否已经在数据库中。 (Lun已经可以连接到其他主机了。)

我看到2个可能性:

  1. 我选择Lun,检查它是否已经在db
  2. 尝试插入Lun并检查异常(唯一约束)
  3. 有人有经验吗?

    BR,Rene

2 个答案:

答案 0 :(得分:7)

entityManager.find(SomeEntity.class, id)
  

返回:       找到的实体实例,如果实体不存在,则返回null

这将在数据库中进行简单的选择。只要确保你的收藏品(如果有的话)是懒惰的。

答案 1 :(得分:4)

我认为检查唯一约束异常是一种更好的方法。想想每个插页的成本......