假设我在只读数据库中有这两个简化的实体我无法更改以下架构:
Article Attribute
------------ -------------
art_nr: int art_nr: int
country: varchar attribute_id: int
... rank: int
Primary key: (art_nr, country) ...
Primary key: (art_nr, attribute_id, rank)
我希望将
Attribute
的列表急切地提取到 Article
实体的属性中,以避免 n+1 查询问题。连接列显然只是art_nr
。
但是,我似乎无法在 Spring Data 或 Hibernate 中建模这种关系。 如果没有连接列,
ManyToMany
关系类型将无法工作,并且使用 OneToMany
对其进行建模也不起作用,因为连接列无法唯一标识相应的实体。
我有什么选择?
您需要添加
@JoinColumn
。
类似这样的事情:
class Article {
@OneToMany
@JoinColumn(name="art_nr", referencedColumnName="art_nr")
List<Attribute> attributes;
}