JPA之JPQL(一)
JPQL语言的语句可以是select语句、update语句或delete语句
他们都是通过Query接口封装执行的
Query接口封装了执行数据库查询的相关方法。调用createQuery、createNamedQuery、createNativeQuery方法可以获得查询对象,进而可调用Query接口的相关方法来执行查询操作。
Query接口的主要方法:
int executeUpdate(): 用于执行update或update语句。
List getResult(): 用于执行只返回单个结果的实体集实体列表。
Object getStringRuselt(): 用于执行只返回单个结果的实体的的select语句。
Query setFirstResult(int starPosition): 用于设置从哪个实体记录开始返回查询结果。
Query setMaxResult(int maxResult): 用于设置放回结果的最大数。与setFirstResult结合可实现分页查询。
Query setFlushMode(FlushModeType
flushMode): 设置查询对象的Flush模式。参数可以去2个枚举值:FlushMoseType.AUTO为自动更新数据库记录,FlushMode Type.COMMIT 为指导提交事务是才更新数据库记录。
createQuery
1. 查询对象
注意:
在jpql中,如果是查询结果是对象,那么from关键字后面跟类名,如果查询结果是一个字段,那么要使用表名
2. 查询部分属性:
默认情况下,如果只查询部分属性,则返回Object[ ] 类型的结果,或者Object[] 类型的List
如果希望返回的是对象,可以在实体类中创建对应的构造器
在JPQL语句中,利用构造器返回实体类的对象
createNamedQuery
适用于实体类前适用@NamedQuery标记的查询语句