将hibernate查询的结果转置到pojo列表中



我得到了一个泛型类,其中包含runQuery方法,具有以下代码设置:

public Object runQuery(String query) {
       Query retVal = getSession().createSQLQuery(query);

     return retVal.list();
   }

我正试图找出如何将返回值转换为检查对象(列表)的列表:

public class Check {
  private int id;
  private String name;
  private String confirmationId;
//getters and setters
    }

我运行的大多数查询实际上是mysql中的存储进程。我知道本机查询和resultTransforms(如果实现将意味着我必须改变我的泛型,而不是之后)。任何想法,我如何能完成这与当前的设置?

您可以找到关于ORM的教程(与Hibernate和JDBC相关的对象/关系映射(ORM)是什么?)。

基本上,你添加注释到你的Check类,告诉hibernate哪个java字段匹配哪个数据库字段,使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而不是这种方法(除非您只有一个类存储在DB中,我对此表示怀疑)。

最新更新