首页 > 解决方案 > 无法在 Spring Boot 中创建 POJO 类。收到错误为“非托管类型”

问题描述

我有一个查询,它返回来自两个不同表的列。我创建了一个新的 POJO 类来存储列数据。但是 POJO 类将错误作为“非托管类型”抛出。

当我添加@Entity 和@Id 时,此错误消失。但后来我得到错误,

无法从类型 [java.lang.Object[]] 转换为类型 [@org.springframework.data.jpa.repository.Query com.library.model.entity.CatalogDisplay]。 因为没有实际的表,所以使用 @Entity 是否正确?

package com.library.model.entity;


public class CatalogDisplay {


    private long bookid ;
    private String bookname ;


    public CatalogDisplay(long bookid, String bookname) {
        super();
        this.bookid = bookid;
        this.bookname = bookname;
    }

//has getters and setters

存储库类

@Repository
public interface BookCatalogRepository extends CrudRepository<CatalogDisplay, Long> {
    /**
     * Query to find all the books from catalog;
     */

    @Query ("Select bc.id , bd.bookname from  BookCatalog bc , BookDetails bd")
    List<CatalogDisplay> findAll() ;

}

请让我知道这是否需要更正,或者当需要来自多个表的列时是否有其他方式来编写。

标签: hibernatejpa

解决方案


您错过@Entity了课程顶部的注释CatalogDisplay

还添加@Id到 pf bookid 并使其成为 Long

@Entity
public class CatalogDisplay {

    @Id
    private Long bookid ;
    private String bookname ;

还要从您的界面中删除代码,这不是必需的


推荐阅读