我是相当新的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);
- 这将是适当的方式做到这一点?
感谢您的任何帮助。