я следующий класс:Hibernate не инициализирует многие-к-одному отношений после слияния
public class Entry{
private long cardNumber;
private long companyId;
private Company company;
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public long getCardNumber() {
return mediaSerialNumberId;
}
public void setCardNumber(long number) {
this.cardNumber = number;
}
public long getCompanyId() {
return companyId;
}
public void setCompanyId(long id) {
this.companyId = id;
}
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
}
Со следующим однонаправленным отображением в компанию:
<hibernate-mapping>
<class name="foo.bar.Entry" table="RECONSTRUCTION" polymorphism="implicit" lazy="false">
<id name="id" column="ID" type="long" unsaved-value="null">
<generator class="sequence">
<param name="sequence">SEQ_ENTRY</param>
</generator>
</id>
<property name="cardNumber" column="CARDNUMBER" type="long"/>
<property name="companyId" column="COMPANYID" type="long"/>
<many-to-one name="company" column="COMPANYID" class="foo.bar.Company" insert="false" update="false" />
</class>
</hibernate-mapping>
создать новый Entry, set CardNumber = 123, CompanyId = 3 и сохранить его с помощью session.merge(). Компания с ID = 3 существует, я могу загрузить ее с session.load(). Компания не имеет отношения Hibernate к Entry.
Возвращенная сохраняемая запись имеет getCompanyId() == 3, но getCompany() == null.
Почему нет отношения «много-к-одному», инициализированного Hibernate в недавно сохраненном объекте? Если я переключусь так, чтобы атрибут «companyId» был вставлен/обновлен = false, я могу вместо этого установить существующий объект Company, но вместо этого getCompanyId() == null вместо ID компании.
В базе данных колонка COMPANYID правильно сохраняется.
Я использую Hibernate 3.6.10.
сделать lazy = "true" –
Спасибо, будет ли это на отношение или класс? –
<класс ... lazy = "true"> –