标签:
用于执行update或delete语句。
用于执行select语句并返回结果集实体列表。
3用于执行只返回单个结果实体的select语句。
用于设置从哪个实体记录开始返回查询结果。
用于设置返回结果实体的最大数。与setFirstResult结合使用可实现分页查询。
设置查询对象的Flush模式。
参数可以取2个枚举值:
FlushModeType.AUTO 为自动更新数据库记录
FlushMode Type.COMMIT 为直到提交事务时才更新数据库记录。
设置与查询对象相关的特定供应商参数或提示信息。参数名及其取值需要参考特定 JPA 实现库提供商的文档。如果第二个参数无效将抛出IllegalArgumentException异常。
为查询语句的指定位置参数赋值。Position 指定参数序号,value 为赋给参数的值。
为查询语句的指定位置参数赋 Date 值。Position 指定参数序号,value 为赋给参数的值,temporalType 取 TemporalType 的枚举常量,包括 DATE、TIME 及 TIMESTAMP 三个,,用于将 Java 的 Date 型值临时转换为数据库支持的日期时间类型(java.sql.Date、java.sql.Time及java.sql.Timestamp)。
为查询语句的指定位置参数赋 Calenda r值。position 指定参数序号,value 为赋给参数的值,temporalType 的含义及取舍同前。
为查询语句的指定名称参数赋值。
为查询语句的指定名称参数赋 Date 值。用法同前。
为查询语句的指定名称参数设置Calendar值。name为参数名,其它同前。该方法调用时如果参数位置或参数名不正确,或者所赋的参数值类型不匹配,将抛出 IllegalArgumentException 异常。
注意:在jpql中,如果是查询结果是对象,那么from关键字后面跟类名,如果查询结果是一个字段,那么要使用表名
例如:(User类对应t_user表)
查询对象:“from User where id = ?”
查询某个字段:”select u.NAME from t_user where u.ID = ?”
String jpql = "FROM User u WHERE u.id = ?";
Query query = entityManager.createQuery(jpql);
query.setParameter(1, 1);//第一个参数是占位符的位置,从1开始,第二个参数是要传入的参数
User user = (User) query.getSingleResult();
System.out.println(user);
查询部分属性:
//获取部分属性
String jpql1 = "SELECT u.id,u.name FROM User u where u.id > ?";
List result = entityManager.createQuery(jpql1).setParameter(1, 1).getResultList();
System.out.println(result);
结果:
默认情况下,如果只查询部分属性,则返回Object[] 类型的结果,或者Object[] 类型的List
如果希望返回的是对象,可以这样写:
public User (){
}
public User(Integer id,String name){
this.id = id;
this.name = name;
}
//获取部分属性
String jpql1 = "SELECT new User(u.id,u.name) FROM User u where u.id > ?";
List result = entityManager.createQuery(jpql1).setParameter(1, 1).getResultList();
System.out.println(result);
结果:
适用于实体类前适用@NamedQuery标记的查询语句
User
@NamedQuery(name="userQuery",query="from User u where u.id = ?")
@Table(name="T_USER")
@Entity
public class User
查询
User user = (User) entityManager.createNamedQuery("userQuery").setParameter(1, 1).getSingleResult();
System.out.println(user);
适用于本地SQL
String jpql = "SELECT u.NAME FROM t_user u where u.id = ?";
Query query = entityManager.createNativeQuery(jpql).setParameter(1, 1);
Object result = query.getSingleResult();
System.out.println(result);
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/u010837612/article/details/47810577