异常总结
时间:2011-03-21 来源:林计钦
一、org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ptn.uim.bean.UimServFileRecord.uimServFileDatas,
no session or session was closed
错误原因:
原因是在hibernate映射关系中由于延迟加载,session在调用前已经被关闭,,所以加载set属性时无可用session
解决方案:
在 @ManyToOne端设置fetch=FetchType.LAZY,@OneToMany端设置fetch=FetchType.EAGER,如下配置
@ManyToOne(cascade={CascadeType.REFRESH, CascadeType.MERGE}, optional=true, fetch=FetchType.LAZY)
@JoinColumn(name="uim_serv_file_record_id")
private UimServFileRecord uimServFileRecord;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="uimServFileRecord")
private Set<UimServFileData> uimServFileDatas=new HashSet<UimServFileData>();