Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LazyInitializationException(当字段处于紧急状态时)异常_Java_Hibernate - Fatal编程技术网

Java LazyInitializationException(当字段处于紧急状态时)异常

Java LazyInitializationException(当字段处于紧急状态时)异常,java,hibernate,Java,Hibernate,我的班级OmQcActivity如下: @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Table(name="OM_QC_ACTIVITY") public class OmQcActivity{ @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name="STATUS_ID") private Codesc status; } codesc是另一个实体

我的班级
OmQcActivity
如下:

@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name="OM_QC_ACTIVITY")
public class OmQcActivity{
   @ManyToOne(fetch = FetchType.EAGER)
   @JoinColumn(name="STATUS_ID")
   private Codesc status;
}
codesc是另一个实体

我在代码中写道:

OmQcActivity  myactivity = findQCActivityById(5);
Codesc status = myactivity.getCodesc();

@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
    public OmQcActivity findQCActivityById(Long id) {
        return session.load(persistentClass, id);
    }
然而,我得到:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:86)
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:140)
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
    at com.mycompany.model.OmQcActivity_$$_javassist_11.getStatus(OmQcActivity_$$_javassist_11.java)

如果提取类型为“急切”,如何获取延迟异常?

发现此问题。如果您的Codesc实体中有
CollectionFements
注释,则会引发关于延迟初始化的异常。

load()
不会立即加载实体,它会返回一个延迟代理,在第一次方法调用时获取真实数据。在大多数情况下,您需要使用
get()
而不是
load()

Show please Codesc code.@Odelya:在这种情况下,性能没有明显的差异。