Reputation: 937
I have this situtation:
Table1:
tab_id
field11
field12
Table2
id
tab_id
field21
field22
I have to create one object on this two tables for example:
object:
@Id
tabId
@Colummn(name="field11")
field11
@Colummn(name="field12")
field12
@Colummn(name="field21")
field21
When i update field21 table2 should update this field, but table1 doesn't have any information about table2, only table2 hat foreign key to table1
Any idea how i should this make ?
I cannot change table structure, i can only create new class in java.
Upvotes: 5
Views: 5112
Reputation: 570615
The id
column in Table2
(I guess it's the PK) is annoying. But if you can get it generated upon insert, mapping both tables using a @SecondaryTable
should work:
@Entity
@Table(name="TABLE1")
@SecondaryTable(name="TABLE2", pkJoinColumns =
@PrimaryKeyJoinColumn(name="TAB_ID", referencedColumnName="TAB_ID")
)
public class MyEntity {
...
@Id @Column(name="TAB_ID")
private Long tabId;
@Column(name="FIELD11")
private int field11;
@Column(name="FIELD12")
private int field12;
@Column(name="FIELD21", table="TABLE2")
private int field21;
...
}
If you can't, I'm afraid you'll have to map 2 classes (with a OneToOne
relation).
Upvotes: 3