私は、コースのセットを含むユーザーがいて、学生が登録されているコースの数を取得する必要があります。私はティをロードしたくありません。これは学生のグラフオブジェクト全体をロードするなど、住所などのようなものがロードされるからです。バネデータjpaを使ってカウントを取得する方法はありますか?質問による春データのjpaカウント
1
A
答えて
1
(コースとしてidと設定プロパティ名としてエンティティ・学生PKを想定)
@Query("select size(s.courses) from Student s where s.id=:id")
long countCoursesByStudentId(@Param("id") long id);
また、あなたも、あなたのCourseRepository(学生へのコースのManyToOne関係を仮定すると、PKおよびプロパティの名前で以下のようにカウント方法を追加することができますIDと学生)
long countByStudentId(long id);
1
N対多関係の場合、size()
関数をユーザーのコースに使用できます。
public class UserIdCountCourses {
private Long userId;
private Integer countCourses;
public UserIdCountCourses(Long userId, Integer countCources) {
this.userId = userId;
this.countCourses = countCources;
}
public Long getUserId() {
return userId;
}
public Integer getCountCourses() {
return countCourses;
}
}
@Query("select new package.....UserIdCountCourses(u.id , size(u.cources))
from User u group by u.id")
List<UserIdCountCourses> findUserIdAndCountEnrolledCourses();
また、ネイティブクエリを使用して必要なものだけを選択することもできます。ネイティブクエリの結果は、オブジェクトの配列ですが、(実体にSqlResultSetMapping、またはXML設定ファイルに追加します)のような名前付きネイティブクエリの@SqlResultSetMapping適用することができます:あなたはこのようなあなたのStudentRepositoryで以下のようにメソッドを追加することができます
@SqlResultSetMapping(
name="UserIdCountCoursesMapping",
classes={
@ConstructorResult(
targetClass=UserIdCountCourses.class,
columns={
@ColumnResult(name="user_id"),
@ColumnResult(name="count_courses")
}
)
}
)
--just query example
@NamedNativeQuery(name="getUserIdCountCourses", query="SELECT user_id,count (1) FROM user LEFT JOIN cources cu ON user_id=cu.user_id",resultSetMapping="UserIdCountCoursesMapping")
関連する問題
- 1. 春データJPAトランザクションの問題
- 2. 春のstatemachineデータjpaサンプルの問題
- 3. カスタムクエリ春にデータJPA
- 4. 春データJPA @Transactional
- 5. エラー春データJPA
- 6. 春+データ-JPA org.springframework.beans.factory.NoSuchBeanDefinitionException:
- 7. 春データ - JPA:ステートメント
- 8. JPA EntityManagerの質問
- 9. 春データ-JPAが表
- 10. 春データJPAとQuerydsl
- 11. ブートストラッピング春データJPA XML
- 12. JPA 2 CriteriaQuery質問
- 13. 左春データJPAの仕様
- 14. 春データ(JPA)/ MVCのサンプルアプリケーション
- 15. 春データJPAとのstartsWithリポジトリ
- 16. JPA/JPQLのCOUNT質問
- 17. 春のWebセキュリティの質問
- 18. 春データ-JPA()またはsaveAndFlush()
- 19. 春データJPA:クエリ多対多
- 20. 春データJPAは - 投影
- 21. 春データJPAコンパイルエラー2.0.0.M4
- 22. 春データJPA関係注釈
- 23. 春データJPA NativeQuery検索
- 24. 春データJPA待機find
- 25. JPAと春データ残り
- 26. 春データJPAネイティブクエリ結果
- 27. 春データ-JPAは、サーバーが
- 28. 春データJPAはフェッチと句
- 29. のMysql、AVGとカウント質問
- 30. jpa/hibernateサブセレクトフェッチに関する質問
あなたのコースはエンティティですか?それらの間の関係はManytoManyかManytoOneですか?エンティティのコードを投稿して正確な回答を得てください。 – Ranjeet