Reputation: 1275
I would like to populate a Data Transfer Object Class with the Result of a native query. But I was receiving the following error:
nested exception is org.hibernate.MappingException: Unknown entity: br.com.cpb.gsa.dto.UserDTO
This is my DTO Class
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;
}
}
this is my native query. it´s a simple query:
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;
}
}
I am using Spring Data JPA, but I know in hibernate exists a method setResultTransformer, but I can't find something like in JPA.
In my case, I need to use a native query because in other queries will use table value functions.
Upvotes: 0
Views: 1878