【发布时间】:2011-03-06 02:51:05
【问题描述】:
我在我的实体中配置了一个简单的 OneToOne 映射,但是当我持久化对象时,我看到 Hibernate 在插入之前正在执行“Select”语句,我不知道为什么。
@Entity
@Table( name = "USER" )
public class NewUser {
@OneToOne
@JoinColumn(name="user_status_type_id", nullable=false)
private UserStatusType userStatusType;
UserStatusType 只是一个只读查找表,因此当我保存 User 时,该表中没有任何内容。
User u = new User();
u.setUserStatusType( new UserStatusType(101));
session.persis(u);
但是当我持久化 User 对象时,Hibernate 的输出如下所示:
Hibernate: select userstatus_.user_status_type_id, userstatus_.user_status_name as user2_3_ from USER_STATUS_TYPE userstatus_ where userstatus_.user_status_type_id=?
Hibernate: insert into USER (created, first_name, last_name, password, user_name, user_status_type_id) values (?, ?, ?, ?, ?, ?)
我不知道这对于 Hibernate 是否正常。我想既然这是一个“持久”操作,我只会看到一个 Insert 语句;不确定 Select 的用途。
映射不正确吗?
【问题讨论】:
-
如何持久化以及持久化时
userStatusType引用了哪个对象? -
我在原帖中更新了更多细节
标签: hibernate