使用@ElementCollection时出错:org.hibernate.MappingException:无法确定类型:java.util.Set,在表:对于列

时间:2019-01-30 13:04:58

标签: java hibernate orm persistent

我有两个表NewsToolSearchCriteriaNewsToolSearchCriteria_NewsSource_RelationnewsToolSearchCriteriaId是对NewsToolSearchCriteria (entityID)的外键引用,我想从第二个表中首先看到一组元素。

尝试通过这种方式进行设置:

@ElementCollection
@CollectionTable(name = "NewsToolSearchCriteria_NewsSource_Relation", joinColumns = @JoinColumn(name = "newsToolSearchCriteriaId"))
@Column(name = "newsSourceCode")
private Set<String> newsSources;

public Set<String> getNewsSources() {
    return newsSources;
}

public void setNewsSources(Set<String> newsSources) {
    this.newsSources = newsSources;
}

但是请继续接收错误:

  

嵌套的异常是org.hibernate.MappingException:无法确定类型:java.util.Set,在表:dbo.NewsToolSearchCriteria,对于列:[org.hibernate.mapping.Column(newsSources)]

我已经尝试使用@Column(name = "newsSourceCode", columnDefinition = "NVARCHAR(30)")@ElementCollection(targetClass = String.class)

我已经看到了其他类似的问题,但不是使用两个实体的情况,可以使用@OneToMany来解决。

有什么办法解决此问题吗?

1 个答案:

答案 0 :(得分:2)

您只需要在吸气剂,而不是一类参数添加注释。

我没有找到它说的地方,但是他们在documentation中使用它,它对我有用。