我想知道这些方法之间的区别。
什么时候使用EntityManager的createQuery()and方法?find()
他们每个人的优点是什么?
谢谢你回答我。
我想知道这些方法之间的区别。
什么时候使用EntityManager的createQuery()and方法?find()
他们每个人的优点是什么?
谢谢你回答我。
find当您想通过主键查找实体时使用。这意味着你确切地知道你在寻找什么,你只是想把它从数据库中提取出来。
当您想使用createQuery标准查找实体或者如果您想使用 JPQL 语句来定义您返回的内容时,您可以使用它。因此,当您想要获取与某些条件匹配的实体或实体集合时,您将使用查询。
该createQuery方法允许您创建将要执行的 JPQL 语句。允许的 JPQL 语句比find. 例如给出下表:
create table CAT(
cat_id integer,
cat_name varchar(40)
)
您可以执行查询以按名称查找猫。
entityManager.createQuery("select c from Cat c where c.name = :name");
该find方法仅允许您使用其主键检索对象。所以要使用find上表的方法:
entityManager.find(Cat.class, new Integer(1));
简而言之,createQuery允许您以更动态的方式检索实体,同时find限制您搜索具有已知 ID 的实体。