Spring Data JPA 中具有组合键但没有联接表的多对多关系

问题描述 投票:0回答:1

假设我在只读数据库中有这两个简化的实体我无法更改以下架构:

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
对其进行建模也不起作用,因为连接列无法唯一标识相应的实体。

我有什么选择?

java hibernate jpa spring-data-jpa
1个回答
0
投票

您需要添加

@JoinColumn

类似这样的事情:

class Article {

    @OneToMany
    @JoinColumn(name="art_nr", referencedColumnName="art_nr")
    List<Attribute> attributes;

}
© www.soinside.com 2019 - 2024. All rights reserved.