【问题标题】:How to cast Hibernate QueryList to custom class如何将 Hibernate QueryList 转换为自定义类
【发布时间】:2018-12-11 09:32:17
【问题描述】:

我从 Hibernate HQL query.list() 得到了结果。所以,返回都在Object[]。数组中每一项的字段也在Object[]中。内容是正确的。

那么,有没有办法将其转换为自定义 java 对象?

谢谢

【问题讨论】:

  • 你在问什么...
  • 向我们展示您的查询和实体类

标签: java hibernate casting


【解决方案1】:

您可以通过 .setResultTransformer(Transformers.aliasToBean(YourClass.class)) 实现这一目标

每个字段都应该用投影映射,比如:

.setProjection(
    Projections.projectionList()
    .add(Projections.property("propertyName"), "alias")
    //... other properties
)

查看here 的许多示例

【讨论】:

    【解决方案2】:

    您无需使用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 提供程序一起使用。

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多