【发布时间】:2019-01-30 13:04:57
【问题描述】:
我有两张桌子NewsToolSearchCriteria 和NewsToolSearchCriteria_NewsSource_Relation。
newsToolSearchCriteriaId 是对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 解决。
任何想法如何解决这个问题?
【问题讨论】:
-
你的桌子
NewsToolSearchCriteria_NewsSource_Relation怎么样?您可能想尝试@JoinTable而不是@CollectionTable
标签: java hibernate orm persistent