问题
How do you map a single value from a column in another table to the current object?
Example:
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;
}
Table: Fields
Foo: FOO_ID, FOO_A
Bar: FOO_ID, BAR_CODE
How do I retrieve the BAR_CODE
field without creating a separate object (or a secondary table) using JPA annotations
?
回答1:
Use a secondary table. This allows you to map for an entity, on a one-to-one basis, another table and define column mappings that use it.
Example:
@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;
}
来源:https://stackoverflow.com/questions/15503189/jpa-annotations-how-to-retrieve-a-single-value-from-a-different-table-than-the