JPA中的动态查询与指定查询(转载)

可以使用动态查询或指定查询(named query)。指定查询随实体存储,可从应用程序重用。

  要创建动态查询,请使用实体管理器接口的createQuery方法,如下所示:

Query query = em.createQuery(
"select e from Employee e where e.empNo > 1");
query.setParameter(1,100);
return query.getResultList();
  如果希望将此查询用作指定查询,请在实体中使用NamedQuery注释,如下所示:

@Entity
@NamedQuery(name="findAllEmployee",
query="select e from Employee e where e.empNo > 1")
public abstract class Employee implements Serializable {
}
  要执行指定查询,首先使用EntityManager接口上的createNamedQuery方法创建一个Query实例,如下所示:

query = em.createNamedQuery(" findAllEmployee");
query.setParameter(1,100);
return query.getResultList();指定参数
  可以在EJBQL查询中使用指定参数(named parameter)代替位置参数(positional parameter)。例如,可以将以上查询重写如下:

 "select e from Employee e where e.empNo > :empNo "

  如果在查询中使用指定参数,则必须设置此参数如下:

query = em.createNamedQuery("findAllEmployee");
query.setParameter("empNo",100);
return query.getResultList();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值