プロジェクトでSpring Data JPAを使用しています。私は何百万ものレコードで遊んでいます。さまざまなテーブルのデータをフェッチし、オブジェクトを構築してから UI にペイントする必要があるという要件があります。これを実現する方法は、Spring データ リポジトリです。名前付きネイティブクエリによって実現できることを読みました。
名前付きネイティブ クエリがエンティティまたはエンティティのリストを返さない場合は、 @SqlResultSetMapping アノテーションを使用して、クエリ結果を正しい戻り値の型にマップできます。
しかし、私が使用しようとする@SqlResultSetMapping
と、別のentityResultを取ります。私が理解していることは、一部のクエリ結果をエンティティ結果セットのみに変換するだけであるということですが、非エンティティ オブジェクトの結果セットが必要です。
@SqlResultSetMapping(
name="studentPercentile",
entities={
@EntityResult(
entityClass=CustomStudent.class,
fields={
@FieldResult(name="id", column="ID"),
@FieldResult(name="firstName", column="FIRST_NAME"),
@FieldResult(name="lastName", column="LAST_NAME")
}
)
}
)
@NamedNativeQuery(
name="findStudentPercentile",
query="SELECT * FROM STUDENT",
resultSetMapping="studentPercentile")
上記の例では、学生エンティティからエンティティではない別の pojo ' CustomStudent 'に結果を取得しようとしています。(この例は、POC の目的のためだけに実行しようとしています。実際のユースケースは非常に複雑で、複雑なクエリが異なる結果セットを返します)。
上記のユースケースを達成するには?私のリポジトリメソッドが非エンティティオブジェクトを返す名前クエリを使用する以外に他の方法はありますか?