Recuperar objeto a partir de lista aninhada Primavera JpaRepository

Vlad Danila:

Eu tenho um repositório

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

O Grupo tem uma lista de itens

private List<Item> items;

Cada item tem uma posição de propriedade

private int position;

Como posso recuperar um grupo por saber a posição de um item presente em uma das listas ?

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

}
Bartek:

Você pode adicionar consulta para seu JpaRepository<Group, Integer>repositório, algo como deve funcionar:

@Query("SELECT g FROM Group g " + 
       "JOIN g.items i ON i.position IN :p")
List<Group> getGroupsWhenPositionMatchAnyRelatedItem(@Param("p") Integer p);

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=213124&siteId=1
Recomendado
Clasificación