Spring MappingException:无法确定类型

Spring MappingException: Could not determine type

我正在构建一个用于测试场景的单页 Web 应用程序,我正在使用 spring-jpa。我想为我的 post-请求使用这个 JSON 数据模型:

{
  "id": 1,
  "title": "test-title",
  "releaseDate": "2021/12/15",
  "rating" : {
      "stars" : 5,
      "comment" : "very exciting"
   }
}

如果我启动我的应用程序,我会收到以下错误: 原因:org.hibernate.MappingException:无法确定类型:de.demo.dto.Rating,在 table:书籍,列:[org.hibernate.mapping.Column(评级)]

如果我用@Entity 声明class“rating”并添加字段“id”,应用程序启动时没有错误(如果我使用@OneToOne 注释)。但是对于 class“评级”,我不想使用带有“id”的自己的数据 table。每个人都可以帮我解决我的问题吗?我该如何解决这个问题?

Class本书:

@Getter
@Setter
@Entity
public class Books {

    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    @Column(unique = true, nullable = false)
    private int id;
    private String title;
    private String releaseDate;
    private Rating rating;
}

class 评分

@Getter
@Setter
public class Rating {
    int stars;
    String comment;
}

谢谢!

看来您想要一对一的关系,但不希望它在另一个 table 中,我想到的最好的办法是将该评级保存为 json 对象字符串。所以你可能需要用像 GSON 这样的第三方库来做 cruds:

Gson gson = new Gson(); // Or use new GsonBuilder().create();
MyType target2 = gson.fromJson(json, MyType.class); // deserializes json into target2