我是相當新的Hibernate和對當實體有FK如何處理插入一個問題;具體如何創建要插入的實體。插入一個Hibernate實體與許多一對一的關係
我的實體具有以下結構簡化:
@Entity
@Table(name="event")
public class Event implements java.io.Serializable {
private int id;
private int eventType
private User user;
public Event (int id, int eventType, User user) {
this.id = id;
this.eventType = eventType;
this.user = user;
}
@Id
@Column(name="ID")
public int getId() {
return this.id;
}
@Column(name="EVENT_TYPE", nullable=false)
public int getEventType() {
return this.eventType;
}
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, targetEntity=User.class)
@JoinColumn(name="USER_ID")
public User getUser() {
return this.user;
}
...
}
-----------
@Entity
@Table(name="user")
public class Event implements java.io.Serializable {
private int id;
private String name;
public User (int id, String name) {
this.id = id;
this.name = name;
}
@Id
@Column(name="ID")
public int getId() {
return this.id;
}
@Column(name="Name", nullable=false)
public String getName() {
return this.name;
}
...
}
現在我想堅持一個新的事件,我有asociated該事件的用戶的用戶名。
我需要創造這樣的:
Event eventToInsert = new Event(45,6, *User object I don't have*);
後來告訴Hibernate保存eventToInsert。
我的問題是我只有用戶ID,但創建事件,我需要整個用戶對象,不僅是其ID。
所以,問題:這個
-Is了一個設計缺陷?應該事件只有'int userID'字段而不是'用戶用戶'?
-Does休眠有什麼辦法來處理這個問題呢?例如:
Event eventToInsert = new Event(45,6, Hibernate.getEntity(UserTable, UserIdValue);
- 這將是適當的方式做到這一點?
感謝您的任何幫助。