java - Hibernate:映射来自另一个表列的值

标签 java hibernate

我有一个如下所示的域实体:

class Exch{
    private int id;
    private String val1;
    private String val2;

    @Column(name = "val1")        
    public String getVal1(){
        return val1;  
    }
    @Column(name = "val2")
    public String getVal2(){
        return val2;
    }
    @Column(name = "id")
    public int id(){
        return id;
    }
}

和表格:

兑换


交易所编号|值1 | VAL2


100000 | AAAA级 | BBB

200000 |认证中心 | DDD

现在我有另一个表,看起来像:

exch_extra


交易所编号| VAL3 | VAL4


100000 | ZZZ| YYY

200000 | XXX|乌乌乌

我是否可以将 exch_extra 表中的 val3 映射到实体 Exch 而无需创建额外的 Exch_extra 实体?

所以我可以:

class Exch{
    private int id;
    private String val1;
    private String val2;
    private String val3;


    @Column(name = "val1")        
    public String getVal1(){
        return val1;  
    }
    @Column(name = "val2")
    public String getVal2(){
        return val2;
    }
    @ do something here so i can have val3 from exch_extra table
    public String val3(){
        return val3
    }

    @Column(name = "id")
    public int id(){
        return id;
    }
 }

最佳答案

Hibernate 有一个 @SecondaryTable 注释,它可以帮助您将多个表映射到一个实体。

只需添加副表注释,连接列(在副表中)注释。

然后映射其他列,如:

@Column(name="val3", table="table2")
private int val3;

其中 table2 是另一个表的名称。

关于java - Hibernate:映射来自另一个表列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065379/

相关文章:

java - 由数据库控制的 Hibernate 时间戳版本。

JavaFX 如何区分 keyPressed X 和 Keys X + Y 的组合

java - main 方法不能声明为 static;静态方法只能在静态或顶级类型中声明

java - JerseyClient 不会针对 4xx 和 5xx 响应引发异常

java - 如何比较两个对象数组并将信息放入另一个对象数组中?

java - 带接口(interface)的 Hibernate HQL

java - 关闭sessionFactory将数据保存到HSQL

java - 找不到org.eclipse.jdt.core.dom.InfixExpression源

java - hibernate 与 EclipseLink

java - Hibernate 返回 BigIntegers 而不是 longs