Hibernate 如何将自定义查询结果转换为JAVA POJO类
我有一个复杂的查询,它从不同的表中获取数据,然后需要将其转换为JavaPOJO进行显示。 我已经尝试使用transformers来实现这一点,但我得到的错误是“org.hibernate.PropertyNotFoundException:在com.db.loud.dto.lem.Feed类上找不到ID的setter” 如果我从id改为id(CAPS),我的POJO类就可以正常工作了。但这不是java变量的命名方式 这里出了什么问题,或者有没有更好的方法 下面是DAO类的代码:Hibernate 如何将自定义查询结果转换为JAVA POJO类,hibernate,Hibernate,我有一个复杂的查询,它从不同的表中获取数据,然后需要将其转换为JavaPOJO进行显示。 我已经尝试使用transformers来实现这一点,但我得到的错误是“org.hibernate.PropertyNotFoundException:在com.db.loud.dto.lem.Feed类上找不到ID的setter” 如果我从id改为id(CAPS),我的POJO类就可以正常工作了。但这不是java变量的命名方式 这里出了什么问题,或者有没有更好的方法 下面是DAO类的代码: Sess
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();
使用JPA,您可以使用为映射的POJO字段指定显式列名(以及更多)。例如:
@Column(name="ID")
private String id;
使用AddScalar解决该问题
List<KondorRecord> kondorRecords = session.createSQLQuery(sql)
.addScalar("facilityId", new LongType())
List kondorRecords=session.createSQLQuery(sql)
.addScalar(“facilityId”,新的LongType())
将字段名称更改为CAP后,会抛出错误“org.hibernate.hibernateeexception:无法实例化resultclass:com.db.loud.dto.lem.Feed”是否可以改用hibernate查询语言HQL?
List<KondorRecord> kondorRecords = session.createSQLQuery(sql)
.addScalar("facilityId", new LongType())