我有一个名为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>发布于 2017-02-12 01:55:22
您可以在查询中使用Select子句中的Projection或Constructor表达式来执行此操作。
例如(投影)
select task, user.fullName from ... where ...or (构造函数表达式)
select new your.project.Result(task,user.fullName) from ... where ...其中Projection将返回一个任务列表,其中[0]是Object[]实体,[1]是fullName。
构造函数表达式将返回一个结果列表(您必须实现的一个类,它有一个适当的构造函数)。
除了使用查询之外,我认为这样的映射是不可能的。
有关构造函数表达式的更多信息,请参见here。
https://stackoverflow.com/questions/42167293
复制相似问题