【问题标题】:Spring Data JPA Query + CrosstableSpring Data JPA 查询 + 交叉表
【发布时间】:2014-09-15 23:18:05
【问题描述】:

我确实有三个数据库表(MariaDB):

A:
+----+
| ID |[...]
+----+

B:
+----+
| ID |[...]
+----+

A_B (Crosstable)
+-----+-----+
| AID | BID |
+-----+-----+

现在我有一个实体 A 的实例,并想使用 Spring Data JPA 存储库获取一个列表:

public interface BRepository extends JPARepository<B, Long> {
    List<B> bList = findByAId(Integer aId);
}

此解决方案不起作用。解决这种关系的正确方法是什么?文档只显示了非常简单的查询,即按列值查询。

实体本身确实有效,我可以正确存储数据。如果我没有提供所有必要的信息,请告诉我。

添加信息(实体的相关部分):

Entity B:
[...]
 @ManyToMany(mappedBy = "B")
List<A> aList;
[...]

Entity A:
[...]
@ManyToMany
@JoinTable(name = "A_B",
        joinColumns = {
                @JoinColumn(
                        name = "a_id",
                        referencedColumnName = "id"
                )
        },
        inverseJoinColumns =
                @JoinColumn(
                        name = "b_id",
                        referencedColumnName = "id"
                )
)
private List<B> bList = new ArrayList<B>();
[...]

【问题讨论】:

    标签: java spring spring-data-jpa


    【解决方案1】:

    好的,最后比我想象的要容易得多。我只需要打电话:

    List<b> bList = aRepository.findOne(id).getBList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多