首页 > 解决方案 > 如何将自定义查询结果转换为 JAVA POJO 类

问题描述

我有一个复杂的查询,它从不同的表中获取数据,然后需要将其转换为 JAVA POJO 以进行显示。我已经尝试为此使用转换器但我收到错误为“org.hibernate.PropertyNotFoundException:无法在 com.db.loud.dto.lem.Feed 类上找到 ID 的设置器”

如果我将我的 POJO 类从 id 更改为 ID(CAPS),它可以正常工作。但这不是 java 变量的命名方式。

这里有什么问题,或者有没有更好的方法来做到这一点。

以下来自 DAO 类的代码:

    Session session = getSession();
    String sql = "select a.id, a.name, b.id, b.f1, c.f2, c.f3 from table1 a, table2 b, table3 c where ......................................";

    SQLQuery query = session.createSQLQuery(sql);
    query.setString("id", id.toString());
    query.setResultTransformer(Transformers.aliasToBean(Feed.class));
    List<LemFeed> list = query.list();

这里 Feed 是我的 JAVA POJO 类:

  public class LemFeed implements Serializable{
  private String id;
  private String name;
  private String f1;
  private String f2;
  private String f3;
  private String f4;
 }

标签: hibernate

解决方案


使用 JPA,您可以使用@Column. 例子:

@Column(name="ID")
private String id;

推荐阅读