java - Spring Data JPA - 如何将查询结果转换为实体类

标签 java spring orm spring-data-jpa jpql

我将 Spring Data JPA 与 Spring Boot 应用程序结合使用。我有一个几乎没有属性的实体类。假设我有 10 个与实体 User 关联的属性,我只想检索其中的几个(用户名、密码、名字、姓氏、电子邮件)。

所以我写了一个查询来只获取 5 个字段,但是该方法不返回实体对象,而是返回一个普通对象。

如何在 Spring Data JPA 中将查询结果转换为实体?

@Query("select userName,password,firstName,lastName,email from User")
public List<User> getUsers();

最佳答案

您必须创建一个结果类,然后稍微更改一下查询:

package com.example;

public class ResultClass{

    String userName,password,firstName,lastName,email;

    public ResultClass(String userName, String password
          , String firstName, String lastName, String email){
         // set fields;
    }
}

和查询:

@Query("select new com.example.ResultClass(userName,password
              ,firstName,lastName,email) from User")
public List<ResultClass> getUsers();

选择的顺序必须与构造函数的顺序相匹配。

关于java - Spring Data JPA - 如何将查询结果转换为实体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471384/

相关文章:

node.js - 如何在 node.js 中使用 sequelize-npm 实现与连接表的一对多关系

java - 如何在 MongoDB 更新查询中编写(或)更新

spring - 在 grails 中更改 Spring Security 插件的登录页面

java - Hibernate中带有命名查询的可选参数?

java - Hibernate ConstraintViolationException : could not insert, SQL 错误

java - Tomcat 部署从单个 war 文件创建 2 个文件夹?

orm - 为什么使用数据库迁移而不是版本控制模式

java - 如何从 Renderscript 内核中检索结构

java - 向一个对象发送对另一个尚未创建的对象的引用...

java - 是否可以在java中创建实例的同一行中调用方法