リポジトリインタフェースを使用する場合は、この実装を使用できます.PagingAndSortingRepository。Spring DATA JPA - JPA算術関数のサポート
この実装では、Sortオブジェクトを使用してORDER BY要求を生成できます。
私はこれらのPOJOている場合:
@Entity
public class Data{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String data;
@OneToMany
private Set<Like> likes;
...
}
@Entity
public class Like{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String data;
...
}
をそして、私はスプリングによって永続性層のために、このインターフェイスを使用する場合:だから
public interface DataRepository extends PagingAndSortingRepository<Data, Long> {
List<Data> findBy...(Pageable page);
}
、私は好きの数だけ注文したいです。しかし、私はそれを行うことはできません。なぜなら、プロパティはコレクション(私がソートするプロパティをソートすると、それは私が理解できないソートを行います)です。 JPAでは、このJPQL要求を使用することができます。
SELECT * FROM DATA order by SIZE(d.likes);
だから、ソート対象によって直接使うこの演算機能を使用することは可能でしょうか? querySQLインターフェイスでこれを実行できますか?
Thxを:)
@Query( "SELECT d FROM Data d ORDER BY SIZE(d.likes)")ページ findAll(Pageable page) 'を実行できますか? – manish