当FetchType为Eager时,获取方法抛出'org.hibernate.LazyInitializationException'异常

时间:2017-09-27 07:27:05

标签: hibernate lazy-initialization

我知道这是着名的Exception,但我找不到解决这个问题的方法。

@Entity
public class Action {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotBlank
private String name;

@Any(metaColumn = @Column(name ="rule_type"),fetch = FetchType.EAGER)
@AnyMetaDef(idType = "long",metaType = "string",metaValues = {@MetaValue(targetEntity = ScheduledRule.class,value = "scheduledRule"),
        @MetaValue(targetEntity = NagiosRule.class,value = "nagiosRule")})
@JoinColumn(name = "rule_id")
@Fetch(value = FetchMode.JOIN)
private Rule rule;
//few other lines of code not relevant here
} // end of class

当我尝试使用会话API从数据库中获取Action实体时出现问题,我收到以下错误:

  

方法抛出'org.hibernate.LazyInitializationException'异常。   无法评估   flipkart.alert.rule.domain.NagiosRule _ _ $$ jvst204_1e.toString()。

我无法理解为什么会发生这种情况,因为我只使用FetchType作为Eager。

0 个答案:

没有答案