java覆盖@CollectionTable
我需要覆盖JPA中的collectiontable?也许有人有主意
public class nationality{
@Embedded
@AttributeOverrides({
@AttributeOverride(name="language.language", column = @Column(name="code_lang")) })
private Language language;
.....
语言课
@Embeddable
public class Language{
@ElementCollection(fetch = FetchType.Eager)
@CollectionTable(name="nat", joinColumns = @JoinColumn(name = "id"))
private Collection<LanguageObj> language;
...
}
这正在工作,但@CollectionTable链接必须发生在National类中。如何做到这一点
类语言必须被从不同表获取数据的其他类重用。 问题是表中已经存在数据,因此无法编辑该表 比如从国家表格中获取数据的国家
public class country{
@Embedded
@AttributeOverrides({
@AttributeOverride(name="language.language", column = @Column(name="code_country")) })
private Language language;
.....
}
# 1 楼答案
以下是解决方案
总体思路是:
1.在可嵌入对象注释集合字段中,使用
@ElementCollection
2.在实体中,用
@CollectionTable
注释集合getter。getter应该转发给Embeddeble的getter。对于每个实体,可以在@CollectionTable
注释中指定单独的表名# 2 楼答案
像使用
@AttributeOverride(s)
一样使用@AssociationOverride(s)