以下哪一个更好(EJB 3 JPA)
//查询
一个).getEntityManager().createQuery("select o from User o");
//命名查询,其中findAllUser在实体级别定义
B).getEntityManager().createNamedQuery("User.findAllUser");**
//本机查询
C).getEntityManager().createNativeQuery("SELECT*FROM TBLMUSER");
请解释一下哪种方法哪种方法更好?
Wun*_*orn 23
它应该用于动态查询创建.
//Example dynamic query
StringBuilder builder = new StringBuilder("select e from Employee e");
if (empName != null) {
builder.append(" where e.name = ?");
}
getEntityManager().createQuery(builder.toString());
Run Code Online (Sandbox Code Playgroud)它就像常量变量和可重用,你应该在常见的db调用中使用它; 查找所有用户,按ID查找等
它完全取决于底层数据库支持的sql脚本.
当需要复杂查询并且不支持JPQL语法时,它很有用.
但如果底层数据库从一个数据库更改为另一个数据库,它可能会影响您的应用程序并需要更多工作.例如,如果您的开发环境使用MySQL,并且您的生产环境使用的是Oracle.+如果超过单个结果,返回的结果绑定可能很复杂.
| 归档时间: |
|
| 查看次数: |
23823 次 |
| 最近记录: |