hibernate - 如何将自定义查询结果转换为 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;
}
解决方案
使用 JPA,您可以使用@Column
. 例子:
@Column(name="ID")
private String id;