gpt4 book ai didi

java - 使用 JPA 使用 native 查询填充 DTO

转载 作者:行者123 更新时间:2023-12-02 09:26:08 26 4
gpt4 key购买 nike

我想用 native 查询的结果填充数据传输对象类。但我收到以下错误:

    nested exception is org.hibernate.MappingException: Unknown entity: br.com.cpb.gsa.dto.UserDTO

这是我的 DTO 类

package br.com.cpb.gsa.dto;

import java.io.Serializable;

public class UserDTO implements Serializable {

private static final long serialVersionUID = 4406975982782060793L;

private Integer id_Usuario;
private String login;

public UserDTO(Integer id_Usuario, String login) {
this.id_Usuario = id_Usuario;
this.login = login;
}

public Integer getId_Usuario() {
return id_Usuario;
}
public void setId_Usuario(Integer id_Usuario) {
this.id_Usuario = id_Usuario;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
}

这是我的 native 查询。这是一个简单的查询:

import br.com.cpb.gsa.dto.UserDTO;

@Repository
public class UserRepositoryImpl implements UserCustomRepository {

@PersistenceContext
private EntityManager em;

@Override
public UserDTO findById(Integer id) {


String query = " select au.id_Usuario, "
+ " au.login"
+ " from Adm_Usuario au"
+ " where au.id_Usuario = 1";

Query natQuery = em.createNativeQuery(query, UserDTO.class);
UserDTO userDTO = (UserDTO) natQuery.getSingleResult();
return userDTO;
}

}

我正在使用 Spring Data JPA,但我知道在 hibernate 中存在一个 setResultTransformer 方法,但我找不到类似 JPA 中的方法。

就我而言,我需要使用 native 查询,因为在其他查询中将使用表值函数。

最佳答案

Projections是您正在寻找的东西。

关于java - 使用 JPA 使用 native 查询填充 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58328609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com