首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以使用hibernate而不是整个对象从连接表中提取属性

我是否可以使用hibernate而不是整个对象从连接表中提取属性
EN

Stack Overflow用户
提问于 2017-02-11 03:33:24
回答 1查看 50关注 0票数 0

我有一个名为task的java对象,我想向其中添加一个名为assigneeFullName的字符串属性,而不是引用要从中提取该属性的完整用户对象。从本质上讲,我想添加一些东西,比如:

代码语言:javascript
复制
private String assigneeFullName;

和:

代码语言:javascript
复制
<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>

或者:

代码语言:javascript
复制
<property name="assigneeFullName" type="string">
    <column name="DUE_DT" length="7" />
</property>

而不是:

代码语言:javascript
复制
private User assignee;

和:

代码语言:javascript
复制
<many-to-one name="assignee" class="User" 
        fetch="select">
<column name="ASSIGNEE_ID" precision="22" scale="0" /> </many-to-one>
EN

回答 1

Stack Overflow用户

发布于 2017-02-12 01:55:22

您可以在查询中使用Select子句中的Projection或Constructor表达式来执行此操作。

例如(投影)

代码语言:javascript
复制
select task, user.fullName from ... where ...

or (构造函数表达式)

代码语言:javascript
复制
select new your.project.Result(task,user.fullName) from ... where ...

其中Projection将返回一个任务列表,其中[0]Object[]实体,[1]是fullName。

构造函数表达式将返回一个结果列表(您必须实现的一个类,它有一个适当的构造函数)。

除了使用查询之外,我认为这样的映射是不可能的。

有关构造函数表达式的更多信息,请参见here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42167293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档