1

我目前使用 .addScalar 和 ResultTransformer 返回没有任何 List 变量的非映射对象列表。我想修改我的对象以包含一个列表。

按照 Hibernate 文档中提供的初始示例,我成功地完成了类似的事情:

sess.createSQLQuery("SELECT ID as id, NM_CDE as nameCode, NM_VALUE as nameValue FROM EMP")
 .addScalar("id", Hibernate.LONG)
 .addScalar("nameCode", Hibernate.STRING)
 .addScalar("nameValue", Hibernate.STRING)
 .setResultTransformer(Transformers.aliasToBean(Employee.class))

假设数据是:

  ID    NM_CDE          NM_VALUE
  1     LEGAL           John Allan Doe
  1     NICKNM          Johnny
  1     FORMATTED       Doe, John

假设上述假设数据,我希望返回一个对象,而不是返回 3 个对象。假设的 Employee.class 将被更新为包含一个 Name 对象列表。

这个:

private Long id;
private String nameCode;
private String nameValue;

将被替换为:

private Long id;
private List<EmpName> empNameList;

但是本机 SQL 和/或 Hibernate 语句需要如何更新?这甚至可能吗?

4

0 回答 0