使用ElementCollection保留字符串列表

时间:2018-06-26 13:19:13

标签: java hibernate spring-boot

因此,我有一个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)

因此,无论哪种方式,存储字符串列表都不起作用。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您需要初始化您的收藏集,例如:

private List<String> listOfThings = new ArrayList<>();

对我来说很好。