我正在構建一個用于測驗場景的單頁 Web 應用程式,我正在使用 spring-jpa。我想在我的 post-request 中使用這個 JSON 資料模型:
{
"id": 1,
"title": "test-title",
"releaseDate": "2021/12/15",
"rating" : {
"stars" : 5,
"comment" : "very exciting"
}
}
如果我啟動我的應用程式,我會收到以下錯誤:由:org.hibernate.MappingException:無法確定型別:de.demo.dto.Rating,在表:書籍,列:[org.hibernate.mapping。列(評級)]
如果我使用@Entity 宣告類“rating”并添加欄位“id”,則應用程式啟動時不會出錯(如果我使用的是@OneToOne 注釋)。但是對于“評級”類,我不想使用帶有“id”的自己的資料表。每個人都可以幫助我解決我的問題嗎?我該如何解決這個問題?
課本:
@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;
}
等級評定
@Getter
@Setter
public class Rating {
int stars;
String comment;
}
謝謝!
uj5u.com熱心網友回復:
所以看起來你想要一對一的關系但不希望它在另一個表中,我想到的最好的事情是將該評級保存為 json 物件字串。所以你可能需要使用一些第三方庫,比如 GSON:
Gson gson = new Gson(); // Or use new GsonBuilder().create();
MyType target2 = gson.fromJson(json, MyType.class); // deserializes json into target2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/384401.html
