如何映射一个本地查询,该查询的列多于一个表?

时间:2018-11-23 13:53:04

标签: java hibernate xml-configuration

我有一个包含4个字段的类,一个包含2列的表和一个本机查询,该查询返回4列。 比方说: 一个班级:

class Foo{
    int id;
    String name;
    int stat;
    String statName;
}

一张桌子:

foo
---------
id | name

和映射:

<class name="Foo" table="foo">
    <id name=id/>
    <property name="name"/>
    <property name="stat"/>
    <property name="statName"/>
</class>
<sql-query name="getWithStat">
    <return class="Foo"/>
    <!--stat and statName calculated as aggregation and concatenation from other table-->
</sql-query>

但是使用此映射,我不能使用基本实体,因为表没有statstatName的列。我应该如何将查询中的这些额外字段映射到班级中?

1 个答案:

答案 0 :(得分:1)

you can use Transient annotation of JPA to ignore property at time of persist.

class Foo{
    int id;
    String name;
    @Transient
    int stat;
    @Transient
    String statName;
}