0
進出口使用Hibernate和我有兩個表以PK爲VARCHAR2Hibernate映射兩個表相同的PK值(NO FK COL)
Table A
-------
myId varchar2(40) **PK**
name varchar2(40)
Table B
--------
myId varchar2(40) **PK**
someItem varchar2(100)
注有在兩個表的外鍵和兩個身份識別碼是PK和插入後應該有確切的值。
我試過OneToOne映射,但似乎不喜歡被映射到的Id
@Entity
@Table(name = "TABLE_A")
public class TableA {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy="uuid2")
@Column(name = "myId", length = 40, nullable = false)
private String id;
@Column(name = "name", length = 40, nullable = false)
private String name;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private TableB tableB;
}
第二臺
@Entity
@Table(name = "TABLE_B")
public class TableB {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy="uuid2")
@Column(name = "myId", length = 40, nullable = false)
private String id;
@Column(name = "someItem", length = 40, nullable = false)
private String anItem;
}
這將產生一個錯誤,指出我需要定義一個ID對於插入前的類TableB。但是我想讓Id成爲tableA的同一個id。有沒有辦法做到這一點在休眠?
Expected result:
Table_A
myId name
=================
JK89S Foobar
Table_B
myId someItem
=================
JK89S Razbaz
如果我能夠改變表格,我會這樣做。我明白這是沒有道理的,但這是我必須合作的。即使一個long被存儲爲一個字符串,我甚至不能將String列中的id列更改爲long。 –