我有一个名为task的java对象我想添加一个名为assigneeFullName的字符串属性,而不是引用它将被拉出的完整用户对象。 基本上我想添加类似的东西:
private String assigneeFullName;
和
<many-to-one name="assigneeFullName" class="string" fetch="select">
<column name="USER.FULL_NAME join on ASSIGNEE_ID" precision="22" scale="0" />
</many-to-one>
或:
<property name="assigneeFullName" type="string">
<column name="DUE_DT" length="7" />
</property>
而不是:
private User assignee;
和
<many-to-one name="assignee" class="User"
fetch="select">
<column name="ASSIGNEE_ID" precision="22" scale="0" /> </many-to-one>
答案 0 :(得分:0)
您可以在Select子句中使用Projection或Constructor Expression在Query中执行此操作。
例如(投影)
select task, user.fullName from ... where ...
或(构造函数表达式)
select new your.project.Result(task,user.fullName) from ... where ...
投影会返回Object[]
列表,其中[0]
是任务实体,[1]
是完整名称。
构造函数表达式将返回结果列表(您必须实现的类,并且具有适当的构造函数)。
除了使用查询之外,我不认为可以进行这样的映射。
有关构造函数表达式的更多信息,请参阅here。