【发布时间】:2018-12-11 09:32:17
【问题描述】:
我从 Hibernate HQL query.list() 得到了结果。所以,返回都在Object[]。数组中每一项的字段也在Object[]中。内容是正确的。
那么,有没有办法将其转换为自定义 java 对象?
谢谢
【问题讨论】:
-
你在问什么...
-
向我们展示您的查询和实体类
我从 Hibernate HQL query.list() 得到了结果。所以,返回都在Object[]。数组中每一项的字段也在Object[]中。内容是正确的。
那么,有没有办法将其转换为自定义 java 对象?
谢谢
【问题讨论】:
您可以通过 .setResultTransformer(Transformers.aliasToBean(YourClass.class)) 实现这一目标
每个字段都应该用投影映射,比如:
.setProjection(
Projections.projectionList()
.add(Projections.property("propertyName"), "alias")
//... other properties
)
查看here 的许多示例
【讨论】:
您无需使用TypedQuery 进行投射:
@PersistenceContext
private EntityManager entityManager;
public List<Employee> findEmployees() {
TypedQuery<Employee> query = entityManager.createQuery("SELECT e FROM Employee e", Employee.class);
return query.getResultList();
}
此外,这是JPA API,您可以将它与Hibernate 或其他JPA 提供程序一起使用。
【讨论】: