JPA注释 - 如何从与当前对象不同的表中检索单个值?

Mar*_*cus 14 java annotations hibernate jpa hibernate-annotations

如何将单个值从另一个表中的列映射到当前对象?

例:

class Foo {
    @Id
    @Column(name="FOO_ID")
    private String fooId;

    @Column(name="FOO_A")
    private String fooA;

    //Column to map to another table?
    //is a one to one mapping - but don't want a separate object for this.
    private String barCode;
}
Run Code Online (Sandbox Code Playgroud)

表: Fields

富: FOO_ID, FOO_A

酒吧: FOO_ID, BAR_CODE

如何在BAR_CODE不创建单独对象(或辅助表)的情况下检索字段JPA annotations

Per*_*ion 24

使用辅助表.这允许您一对一地映射实体,另一个表并定义使用它的列映射.

例:

@Entity
@Table(name = "foo")
@SecondaryTable(name = "other_table", pkJoinColumns=@PrimaryKeyJoinColumn(name="id", referencedColumnName="FOO_ID"))
public class Foo {
    @Id
    @Column(name="FOO_ID")
    private String fooId;

    @Column(name="FOO_A")
    private String fooA;

    @Column(table="OtherTable", name="barCode")
    private String barCode;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你有多个辅助表,那么使用... [`@ SecondaryTables`](http://docs.oracle.com/javaee/6/api/javax/persistence/SecondaryTables.html) (4认同)
  • @Perception:不应该是`@Column(table ="other_table",name ="barCode")`?您是否隐含地利用[this](http://stackoverflow.com/a/19454829/1654265),这是一个错字,还是在其他地方有其他名称转换? (3认同)