![](/img/trans.png)
[英]JPA-Hibernate - “could not get a field value by reflection getter of with inheritance
[英]could not get a field value by reflection hibernate
我在 jpa 中更新對象時遇到問題
我有豆用戶
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "fk_program_rating")
private List<Rating> ratingList = new ArrayList<Rating>();
}
和
public class Rating extends BaseModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;
@ManyToOne()
@JoinColumn(name = "fk_program_rating", nullable = false)
@ForeignKey(name = "FK_prog_rate")
@OnDelete(action = OnDeleteAction.CASCADE)
private Program program;
}
當嘗試更新時給我異常:無法通過反射獲得字段值,當表評級有行時發生
錯誤 TransactionInterceptor:434 - 應用程序異常被提交異常 com.vodafone.visradio.dataaccess.exception.DataAccessException: org.hibernate.PropertyAccessException: 無法通過 com.vodafone.visradio.dataaccess.model.Rating 的反射獲取器獲取字段值。ID
關於這個問題的任何幫助
謝謝
嘗試更改映射注釋。 取出@JoinColumn
從注釋ratingList
和添加mappedBy
屬性:
@OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
private List<Rating> ratingList = new ArrayList<Rating>();
其中user
是Rating
實體中與User
具有@ManyToOne
關聯的屬性名稱。
可能導致這種情況的另一件事是,如果您沒有完全正確地執行您的標准。
例如,如果您將"rating"
放在標准中,但您實際上需要"rating.id"
。 這將導致出現相同的錯誤消息。
因此,如果您檢查了實體定義,請檢查以確保在失敗的實際查詢中沒有像這樣的簡單錯誤。 這就是我遇到類似錯誤時的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.