jpa查询所有数据,jpa查询
query q=em . create query( select u from Userinfo u );
list list=q . get result list();
如果有多个查询结果,应该使用查询接口的getResultList方法。如果只有一个查询结果,可以使用查询接口的getSingleResult方法。
命名查询:
@NamedQuery(name=findAllUser ,query=SELECT u FROM Userinfo u )
Name表示查询的名称,query就是查询语句本身。命名查询可以在实体类中编写,在第一课中生成的实体类中有多个命名查询。
对于命名查询,可以使用EntityManager的createNamedQuery方法。要访问上述查询,可以使用以下代码:
query q=em . createnamed query( find all user );
list Userinfo list=q . get result list();
createNamedQuery方法的参数命名查询。
2.使用查询完成分页
分页就是一次只显示一些对象的信息。显示哪一部分信息取决于它从哪里开始以及在哪里显示。查询界面可以控制记录的获取。有两种方法可以设置要获取的第一条记录和最后一条记录。这两种方法的定义如下:
SetMaxResults(int maxResult),该参数是要查询的最大记录数。
set first result(int start position),参数是要查询的第一条记录的位置。
页面显示由这两个属性完成。
注意:分页必须使用Apache-open JPA-1 . 0 . 2-binary . zip,1.0.1不行是个Bug。
3.条件查询
对于query,需要在查询语句中使用变量。有两种方式:位置参数和名称参数。
位参量
在位置参数中,使用“?”该数字加上参数的序列号来表示参数。
例如,根据用户名查询用户。
SELECT u FROM Userinfo u其中u.username=?一个
1表示第一个参数。
在位置参数中,可以使用多个参数,这些参数可以用不同的数字表示。同一参数可以在查询中出现多次。
名字参数
在“名称参数”类别中,使用“:”加上参数的名称来表示参数。
例如,根据用户类型查询用户。
SELECT u FROM Userinfo u其中u.usertype=:usertype
“:”符号后的usertype是参数的名称。
位置参数和名称参数都可以在命名查询中使用。
参数的赋值由查询接口的相应方法完成,主要方法如下:
公共查询setParameter(int位置,对象值)
公共查询setParameter(int position,Date value,TemporalType temporalType)
公共查询setParameter(int position,Calendar value,TemporalType temporalType)
name参数的赋值方法基本相同,只是第一个参数用于指定参数的名称。主要方法如下:
公共查询setParameter(字符串名称,对象值)
公共查询setParameter(字符串名称,日期值,时间类型时间类型)
公共查询setParameter(字符串名称,日历值,时间类型时间类型)
示例:使用前面描述的语句按用户名进行查询。
query q=em . create query( SELECT u FROM Userinfo u其中u.username=?1);
q=q.setParameter(1,用户名);
list Userinfo list=q . get result list();
示例2:使用前面描述的语句根据用户类型进行查询。
query q=em . create query( SELECT u FROM Userinfo u WHERE u . usertype=:usertype );
q=q.setParameter(usertype ,usertype);
list Userinfo list=q . get result list();
来自:3358 hi . Baidu . com/249116148/blog/item/e 5273 ef 52 c 97720 BC 310928 . html