複雑なネイティブ クエリがあり、その結果を非エンティティ DTO クラスにマップしようとしています。を使用しようとしてJPA
いSqlResultSetMapping
ますConstructorResult
私のDTOクラス
@Data
public class Dto {
private Long id;
private String serial;
private Long entry;
private int numOfTasks;
}
このエンティティ クラスには、このネイティブ クエリ結果と呼ぶリポジトリ インターフェイスがあります。
@SqlResultSetMapping(
name = "itemDetailsMapping",
classes = {
@ConstructorResult(
targetClass = Dto.class,
columns = {
@ColumnResult(name = "ID"),
@ColumnResult(name = "SERIAL"),
@ColumnResult(name = "ENTRY"),
@ColumnResult(name = "TASKS")
}
)
}
)
@NamedNativeQuery(name = "getItemDetails", query = "complex query is here", resultSetMapping = "itemDetailsMapping")
@Entity
@Data
public class Item {}
リポジトリ
@Repository
public interface ItemRepository extends JpaRepository<Item, Long> {
...
List<Dto> getItemDetails();
}
getItemDetails()
fromを呼び出すとItemRepository
、次のエラーが発生します。
org.springframework.data.mapping.PropertyReferenceException: タイプ Item のプロパティ itemDetails が見つかりません
この問題を使用SqlResultSetMapping
して解決する適切な方法は何ですか。ConstructorResult
どんな助けでも大歓迎です。