3
外鍵元素集合映射:JPA /休眠如何考慮這兩個表通過註釋
CREATE TABLE `soc` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32),
PRIMARY KEY (`id`));
CREATE TABLE `soc_attitude` (
`soc_id` INT NOT NULL,
`target_soc_id` INT NOT NULL,
`attitude` INT,
PRIMARY KEY (`soc_id`,`target_soc_id`));
在志類,我想所有行從匹配this.soc_id soc_attitude表使用領域是這樣的:
private Map<Integer,Integer> attitudes;
其中地圖的關鍵是target_soc_id和價值是態度。
我得到儘可能的:
@Entity
@Table(name = "soc")
public class Soc {
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name="name")
private String name;
@ElementCollection
@CollectionTable(name="soc_attitude",[email protected](name="soc_id"))
@Column(name="attitude")
private Map<Integer,Integer> attitudes;
但我認爲這會讓soc_id鍵和態度值。
我使用哪些註釋? (使用Hibernate 4.3.11.Final)
工作就像一個魅力!謝謝。我在Hibernate集合映射文檔中看到了這一點,但不清楚它是否也可以應用於@ElementCollection。 –
如果「態度」是JPA實體,它將會有什麼樣子?像'地圖<整數,態度>態度'。獲取SQL錯誤。乾杯 – Blauhirn
@Blauhirn ok我自己修正了:在這種情況下,需要使用'@ ManyToMany'和'@ JoinTable'來代替elem.collection和coll.table。 – Blauhirn