Я настроил простое сопоставление OneToOne в своей сущности, но когда я сохраняю объект, я вижу оператор "Select", выполняемый Hibernate незадолго до вставки, и я не знаю, почему.
@Entity
@Table( name = "USER" )
public class NewUser {
@OneToOne
@JoinColumn(name="user_status_type_id", nullable=false)
private UserStatusType userStatusType;
UserStatusType - это просто справочная таблица только для чтения, поэтому при сохранении пользователя в этой таблице ничего не сохраняется.
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. Я подумал, что поскольку это была «постоянная» операция, я бы увидел только оператор вставки; не уверен в цели выбора.
Неверно ли сопоставление?