0
我有一個MySQL數據庫有兩個表,contacts
和addresses
。表addresses
包含與contact
表連接的類型爲大整數的列contactid
。休眠:在@ManyToOne關係中重命名自動生成的Id
我在Hibernate中使用雙向OneToMany - ManyToOne關係具有以下實體。問題是@ManyToOne
關係在我的數據庫中創建另一個類型爲整數的contact_id
列。我想用已有的contactid
列,而不是有contact_id
,所以我想我應該自動生成的contact_id
列重命名爲contactid
,但我不知道這是可能的...
有什麼辦法來解決這不需要修改數據庫?
在此先感謝。
@Entity
@Table(name="contacts")
public class Contact implements Serializable {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name="name")
private String name;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="contact")
private List<Address> addresses= new ArrayList<Address>();
// getters and setters
}
@Entity
@Table(name="addresses")
public class Address implements Serializable {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(name="street")
private String street;
@Column(name="postalcode")
private String postalcode;
@ManyToOne
private Contact contact;
// getters and setters
}
@JoinColumn註釋是我所需要的。 'contactid'是我想要映射的數據庫中已存在的列,@ManyToOne註釋的結果是'contact_id'自動生成的列。使用@JoinColumn(name =「contactid」)解決了這個問題。 –