我有以下ContactDTO
java POJO,它是我的实体的精简版本Contact
,包含 100 多个字段/列
联系DTO:
public class ContactDTO {
@JsonProperty
private Integer contactId;
@JsonProperty
private String userName;
@JsonProperty
private String firstName;
//getters and setters...
}
我试图在hibernate
查询中返回它,如下所示,请注意,当我在MYSQL
Workbench 中手动运行此查询时,它会按预期工作:
@Override
public ContactDTO getContactDTObyId(String client, Integer id) throws ATSException {
EntityManager entityManager = null;
try {
entityManager = entityManagement.createEntityManager(client);
String queryString = "select contact_id as contactId, username as userName, first_name as firstName from " + client + ".contact where "+" contact_id = " + id + "";
Query query = entityManager.createNativeQuery(queryString, ContactDTO.class);
return (ContactDTO) query.getSingleResult();
} catch (Exception e) {
log.error("An error is thrown in getContactDTObyId");
} finally {
entityManagement.closeEntityManager(client, entityManager);
}
}
以上在该getSingleResult()
行给了我以下错误:
org.hibernate.MappingException: Unknown entity: ContactDTO
如何使用 Hibernate 返回这个 DTO 对象?
我知道这不是我的Contact
实体映射到Contact
数据库表的方式的实体,但我认为我仍然可以Hibernate
通过填充字段来返回它。