我有一个仓库
public interface GroupRepository extends JpaRepository<Group, Integer> {
}
组确实有一个列表的项目
private List<Item> items;
每个Item 都有一个position 属性
private int position;
How can I retrieve a group by knowing the position of an item present in one of the lists?
Item.java
public class Item extends PersistedBean{
private int position;
private Group group;
@Column(name = "Position")
public int getPosition() {
return position;
}
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "GroupId", referencedColumnName = "Id")
public Group getGroup() {
return group;
}
}
组.java
public class Group extends PersistedBean {
private int position;
private List<Item> items;
@Column(name = "Position")
public int getPosition() {
return position;
}
@OneToMany(cascade = CascadeType.ALL, mappedBy = "group", orphanRemoval = false)
public List<Item> getItems() {
return items;
}
}
最佳答案
您可以将查询添加到您的 JpaRepository<Group, Integer>
存储库,类似的东西应该可以工作:
@Query("SELECT g FROM Group g " +
"JOIN g.items i ON i.position IN :p")
List<Group> getGroupsWhenPositionMatchAnyRelatedItem(@Param("p") Integer p);
关于java - 从嵌套列表 Spring JpaRepository 中检索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52290265/