我有以下实体
@Entity
@Table(name = "Parent")
public class Parent {
@ElementCollecion(fetch = FetchType.Eager)
Map<Integer,String> myMap;
public Map<Integer,String> getMyMap() {
return this.myMap;
}
}
然后在代码中的某个地方出现
parent.getMyMap().get(someKey);
此行始终抛出LazyInitialization异常。我已将fetchType设置为热切加载集合,以便值始终可用。我错过了什么>是因为可以访问getMap.GetKey吗?
我在调试日志或其他任何地方都没有看到更多信息。
答案 0 :(得分:0)
通常@ElementCollection带有@CollectionTable以及@MapKeyColumn和@Column批注,以提供表和值以加载地图的内容。
@Entity
@Table(name = "Parent")
public class Parent {
@ElementCollection(fetch = FetchType.Eager)
@CollectionTable(name="example_attributes", joinColumns=@JoinColumn(name="example_id"))
@MapKeyColumn(name="name")
@Column(name="value")
Map<Integer,String> myMap;
public Map<Integer,String> getMyMap() {
return this.myMap;
}
}