Spring Data JPA通过OneToMany关系中的值进行排序

时间:2019-06-11 11:54:30

标签: jpa spring-data-jpa spring-data querydsl

我正在尝试按嵌套集合元素值对结果进行排序。我有一个非常简单的模型:

@Entity
public class User {

    @Id
    @NotNull
    @Column(name = "userid")
    private Long id;

    @OneToMany(mappedBy = "user")
    private Collection<Setting> settings = new HashSet<>();

    // getters and setters
}

@Entity
public class Setting {

    @Id
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "userid")
    private User user;

    private String key;
    private String value;

    // getters and setters
}

public interface UserRepository extends JpaRepository<User, Long>, QuerydslPredicateExecutor<User> {
}

我想返回一个按一个设置值排序的结果。 可以使用Spring Data JPA和QueryDSL通过user.settings.value进行排序,其中settings.name ='SampleName'吗?

1 个答案:

答案 0 :(得分:0)

我用过 FROM raw_data AS rd LEFT JOIN cte_rawdata ON rd.date_time = cte_rawdata.date_time LEFT JOIN cte_MA10m ON rd.date_time = cte_rawdata.date_time 。让我们以JpaSpecificationExecutor为例。

findAll

在调用此方法之前,您可以动态创建您的规范(其中的条件)和具有动态Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable); 信息的Pageable对象。

例如

Sort
相关问题