java - 从嵌套列表 Spring JpaRepository 中检索对象

标签 java nested spring-data-jpa repository jpql

我有一个仓库

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/

相关文章:

java - 为什么 java hashmap 在计数为 8 时对 bin 进行树形化,而在计数为 6 时对 bin 进行树形化?

java - 如何从有序列表中选择随机起始位置?

java - Jackson xml 和 json 根元素

c# - 实现嵌套的通用接口(interface)

java - Spring JPA 中的作者少书籍多对多关系

java - 简单的 Java 方法无论用户输入如何都返回 0

css - 如何配置 div 以调整大小以包含内部 div?

jquery - 使用 jQuery 查找点击时最接近的元素

java - Pageable 对象的 isPaged 方法

spring - Spring JPA::找不到能够从类型转换的转换器