ItemVersionLanguage 객체에 대해 최대 절전 모드 병합()을 수행 할 때 "ERROR [org.hibernate.LazyInitializationException] (pool-9-thread-1)이 프록시를 초기화 할 수 없습니다. Session : org가 없습니다. .hibernate.LazyInitializationException : 프록시를 초기화 할 수 없습니다 - 세션 없음 "아래 코드에서.Hibernate 엔티티 getter에서 LazyInitializationException
하지만 그것에서 데이터를 얻을 때, 그것은 ItemVersion 또는 ItemVersionLanguage의 URL 중 하나에서 잘 작동합니다.
내가 찾아) (A @Transactional 병합하는 코드를 포장하지 않습니다.
ItemVersionLanguage.java
@Entity
@Table(name = "item_version_language")
public class ItemVersionLanguage implements java.io.Serializable {
private String url;
private ItemVersion itemVersion;
public void setUrl(String url)
{
this.url = url;
}
@Column(name = "url")
public String getUrl()
{
if(this.url == null)
{
return this.itemVersion.url; //this results in the problem!
}
else
{
return this.url;
}
}
public void setItemVersion(ItemVersion itemVersion)
{
this.itemVersion = itemVersion;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "item_version_obj_id", nullable = false)
public ItemVersion getItemVersion()
{
return this.itemVersion;
}
}
ItemVersion.java
@Entity
@Table(name = "item_version")
public class ItemVersion implements java.io.Serializable {
private String url;
public void setUrl(String url)
{
this.url = url;
}
@Column(name = "url")
public String getUrl()
{
return this.url;
}
}
내가 뭔가 잘못을하고 있습니까?