3

私は 2 つのエンティティを持っています: 1 対多の関係にある学部とコースです。つまり、学部は複数のコースを提供できますが、提供しないこともあります。

私は、学部が提供するコースの数で学部を並べ替えようとしています。

criteriaQuery.orderBy(criteriaBuilder.asc(criteriaBuilder.size(root.get(Faculty_.courses))));

問題は、それが失敗することです

criteriaBuilder.size(root.get(Faculty_.courses)) 

特定の学部では、Faculty_.courses が null であるため、NullPointerException が発生します。コースがnullの場合を考慮して、これをより良い方法で書くのを手伝ってください。

注:これはページネーションなどを含むより大きなクエリの一部であるため、JPA Criteria API を使用する必要があります。したがって、クエリ言語を使用して記述することはオプションではありません。

4

1 に答える 1

2

null何もない場合の代わりに空のリスト (またはセット) またはコースを常に持つように、Faculty を記述する必要があります。

@OneToMany
private Set<Course> courses = new HashSet<Course>();
于 2012-09-16T09:47:29.027 に答える