JPA的查询语言—使用构造器
2012-06-03 13:25
344 查看
如果我们只需要查询实体中的某些属性,但是不希望查询的结果返回的是对象数组,就可以使用JPQL通过实体的构造器进行查询,这样查询结果返回的就是实体。
实体User.java:
1、如果我们只是要查询User实体的name属性和age属性,先在User类中提供以这两个属性为参数的构造方法。再使用下面的语句进行查询:
使用new User(u.name,u.age)使得返回的查询结果是实体的集合。
2、如果我们只是要查询User实体的name属性、email属性和age属性,先在User类中提供以这三个属性为参数的构造方法,再使用下面的语句进行查询:
使用new User(u.name,u.email,u.age)使得返回的查询结果是实体的集合。
实体User.java:
package com.cndatacom.jpa.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="t_user") public class User { /** * 主键 */ @Id @GeneratedValue private Long id; /** * 名字 */ @Column(name="name",length=50) private String name; /** * 密码 */ @Column(name="password",length=20) private String password; /** * 邮箱 */ @Column(name="email",length=50) private String email; /** * 年龄 */ @Column(name="age",length=3) private int age; public User() { } //使用name属性和age属性的构造方法 public User(String name, int age) { super(); this.name = name; this.age = age; } //使用name属性、email属性和age属性的构造方法 public User(String name, String email, int age) { super(); this.name = name; this.email = email; this.age = age; } //以下省略getter/setter方法 //...... }
1、如果我们只是要查询User实体的name属性和age属性,先在User类中提供以这两个属性为参数的构造方法。再使用下面的语句进行查询:
SELECT new User(u.name,u.age) FROM User u
使用new User(u.name,u.age)使得返回的查询结果是实体的集合。
String jpql = "SELECT new User(u.name,u.age) FROM User u"; Query query = em.createQuery(jpql); List<User> resultList = query.getResultList();
2、如果我们只是要查询User实体的name属性、email属性和age属性,先在User类中提供以这三个属性为参数的构造方法,再使用下面的语句进行查询:
SELECT new User(u.name,u.email,u.age) FROM User u
使用new User(u.name,u.email,u.age)使得返回的查询结果是实体的集合。
String jpql = "SELECT new User(u.name,u.email,u.age) FROM User u"; Query query = em.createQuery(jpql); List<User> resultList = query.getResultList();
相关文章推荐
- JPA的查询语言—使用原生SQL
- JPA学习(五):java持久化查询语言JPQL--动态查询的使用及语法限制
- JPA的查询语言—使用原生SQL
- JPA的查询语言—使用原生SQL
- JPA的查询语言—使用原生SQL
- 【JPA】使用JPA查询语言创建查询
- Hibernate JPA 如何使用SQL文直接查询
- Spring data JPA使用Specification实现动态查询例子
- HQL查询语言的使用介绍
- 【JPA】JPA本地查询注解SqlResultSetMapping的使用
- Spring Data Jpa 使用@Query标注自定义查询语句
- JPA查询语言JPQL
- 使用 JPQL 和原生 SQL 查询 JPA 实体(转)
- JPA查询语言(1)
- spring-data-JPA使用JpaRepository注解自定义SQL查询数据库多表查询
- JPA的查询语言:JPQL的关联查询
- JPA学习(三):java持久化查询语言JPQL--介绍、基础语法
- C#语言习惯 - 推荐使用查询语法而不是循环
- JPA学习---第八节:使用JPQL语句进行查询
- jpa或bernate使用原生sql进行关联查询org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join