And*_*iel 7 java jpa entitymanager
我想知道这些方法之间的区别.
当使用EntityManager 的createQuery()和find()方法时?
他们每个人的优势是什么?
谢谢你的回答.
Nat*_*hes 12
您find希望按主键查找实体时使用.这意味着你确切地知道你在寻找什么,你只想把它从数据库中拉出来.
您可以使用createQuery,当你想使用标准,或者,如果你想使用JPQL语句来定义你得到的是什么实体发现.因此,当您想要获得符合某些条件的实体或实体集合时,您将使用该查询.
Kev*_*sox 10
该createQuery方法允许您创建将要执行的JPQL语句.允许的JPQL语句比执行的语句更具动态性find.例如,给出下表:
create table CAT(
cat_id integer,
cat_name varchar(40)
)
Run Code Online (Sandbox Code Playgroud)
您可以执行查询以按名称查找cat.
entityManager.createQuery("select c from Cat c where c.name = :name");
Run Code Online (Sandbox Code Playgroud)
该find方法仅允许您使用其主键检索对象.所以要使用find上表中的方法:
entityManager.find(Cat.class, new Integer(1));
Run Code Online (Sandbox Code Playgroud)
简而言之,createQuery允许您以更动态的方式检索实体,同时find限制您搜索具有已知ID的实体.
| 归档时间: |
|
| 查看次数: |
20768 次 |
| 最近记录: |