java - 如何返回不是实体的对象列表并添加一个自定义变量,该变量将从 hibernate 查询中的属性文件中获取?

标签 java sql database hibernate spring-boot

我需要返回一个 CustomEmployee 列表,我需要从属性文件中提取一个参数。

我需要从实体 Employee 查询 CustomEmployee 的所有其他参数。

我的员工类:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="EMPLOYEE")
public class Employee implements Serializable{

    private static final long serialVersionUID = 1859692418829710098L;

    @Id
    public Long id;

    public String name;
    public long salary;

CustomEmployee 类:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class CustomEmployee{

    public String name;
    public long salary;
    public String extra;
}

我查询的服务:

@PersistenceContext
    private EntityManager entityManager;



    public List<CustomEmployee> retrieveCustomEmployee(){

        String dummy ="dummy"; //to be pulled from properties file

        String query = "SELECT new com.example.office.dto.CustomEmployee(" + 
        " emp.name, emp.salary, "+ dummy +" AS extra"+")"+" FROM Employee emp";

        TypedQuery<CustomEmployee> typeQuery = entityManager.createQuery(query, CustomEmployee.class);
        System.out.println("######"+ typeQuery.getResultList());

        return typeQuery.getResultList();

    }

我收到空指针异常异常。但是使用下面的查询我无法找到合适的构造函数:

String query = "SELECT new com.example.office.dto.CustomEmployee(" + 
        " emp.name, emp.salary, 'dummy' AS extra"+")"+" FROM Employee emp";

你能指导我解决这个问题吗?

谢谢。

最佳答案

要解决第一个问题,我认为您只需在引号之间添加虚拟变量即可。如下所示:

String query = "SELECT new com.example.office.dto.CustomEmployee(" + 
        " emp.name, emp.salary, '"+ dummy +"' AS extra"+")"+" FROM Employee emp";

关于java - 如何返回不是实体的对象列表并添加一个自定义变量,该变量将从 hibernate 查询中的属性文件中获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58310485/

相关文章:

java - 当用户选择 "Cancel"时保持 Java 应用程序打开?

java - 我们如何使用JAVA在MySQL中添加unicode文本

java - 线程安全简单

python - 获取实际更新为不同值的列?

mysql - 长度大于 1 的排序依据

java - Criteria API 中按目标加入

database - 获取并保存到数据库——时间与内存

java - 什么时候最好在 Java 中使用 volatile boolean 而不是 AtomicBoolean?

sql - 从 select 语句推断的 Postgres 隐式类型

php - 集中式用户数据库