我有一个包含runQuery方法的泛型类,该方法具有以下代码设置:
public Object runQuery(String query) {
Query retVal = getSession().createSQLQuery(query);
return retVal.list();
}
我试图弄清楚如何将返回的值转换为Check对象列表(List):
public class Check {
private int id;
private String name;
private String confirmationId;
//getters and setters
}
我运行的大多数查询实际上是在mysql中存储过程。我知道本机查询和resultTransforms(如果实现将意味着我必须更改我的泛型而不是之后)。 任何想法如何通过当前设置实现这一目标?
答案 0 :(得分:0)
您可以找到有关ORM(What is Object/relational mapping(ORM) in relation to Hibernate and JDBC?)的教程。
基本上,你在Check类中添加注释,告诉hibernate哪些java字段与哪个DB字段匹配,生成一个JPQL(看起来像SQL)请求,然后它获取你的对象并将它们从DB映射到POJO。
这是一个广泛的主题,这是一个良好的开端:https://www.tutorialspoint.com/hibernate/hibernate_quick_guide.htm 它需要一些配置,但这是值得的。这是关于基于注释的配置的一个教程:https://www.tutorialspoint.com/hibernate/hibernate_annotations.htm但对ORM如何工作的解释较少(还有EclipseLink作为ORM)
否则,您可以让自己拥有自己的映射器,它会从ResultSet
获取值,并在您的班级中设置它们。由于很多原因,我建议使用ORM而不是这个方法(除非你只有一个存储在数据库中的类,我怀疑)。