Получить объект из вложенного списка Spring JpaRepository - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть хранилище

public interface GroupRepository extends JpaRepository<Group, Integer> {
}

Группа имеет список элементов

private List<Item> items;

Каждый Элемент имеет позицию свойство

private int position;

Как я могу получить группу , зная позицию предмета присутствует в одном из списков ?

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;
  }
}

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;
  }

}

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете добавить запрос в ваш 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);
...