6

複雑なネイティブ クエリがあり、その結果を非エンティティ DTO クラスにマップしようとしています。を使用しようとしてJPASqlResultSetMappingます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

どんな助けでも大歓迎です。

4

1 に答える 1