因此,我有一个Entity类,其中包含一个带有@ElementCollection批注的字符串列表属性。重点当然是持久化/检索字符串列表。
@ElementCollection
private List<String> listOfThings;
基于此定义,Hibernate创建了新的数据库表,但是当我为listOfThings分配值时:
record.setListOfThings(listOfStrings);
我看到有一个例外:
method threw 'org.hibernate.lazyinitializationexception' exception. cannot evaluate tostring() ...
因此,在得知我实际上需要使用EAGER加载来注释listOfThings
:
@ElementCollection(fetch = FetchType.EAGER)
private List<String> listOfThings;
我已经开始收到新的错误消息:
org.hibernate.SessionException: collections cannot be fetched by a stateless org.hibernate.internal.StatelessSessionImpl.initializeCollection(StatelessSessionImpl.java:299)
因此,无论哪种方式,存储字符串列表都不起作用。任何帮助表示赞赏。
答案 0 :(得分:0)
您需要初始化您的收藏集,例如:
private List<String> listOfThings = new ArrayList<>();
对我来说很好。