我有三个数据库表(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>();
[...]
答案 0 :(得分:1)
好的,最后它比我想象的容易得多。我只需要打电话:
List<b> bList = aRepository.findOne(id).getBList();