我目前使用 .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 语句需要如何更新?这甚至可能吗?