无法通过reflectionhibernate获取字段值

在jpa中更新对象时遇到问题

我有bean用户

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 ratingList = new ArrayList(); } 

 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; } 

当尝试更新时给我exception:无法通过表评级有行时发生的reflection获得字段值

错误TransactionInterceptor:434 – 由提交exception覆盖的应用程序exceptioncom.vodafone.visradio.dataaccess.exception.DataAccessException:org.hibernate.PropertyAccessException:无法通过com.vodafone.visradio.dataaccess.model.Rating的reflectiongetter获取字段值。 。ID

关于这个问题的任何帮助
谢谢

尝试更改映射注释。 从@JoinColumn删除@JoinColumn注释并添加mappedBy属性:

 @OneToMany(fetch = FetchType.EAGER, mappedBy = "user") private List ratingList = new ArrayList(); 

其中userRating实体中与User具有@ManyToOne关联的属性名称。

另一件可能导致这种情况的事情是,如果你没有正确地完成你的标准。

例如,如果您在条件中添加"rating" ,但实际上您需要"rating.id" 。 这将导致出现同样的错误消息。

因此,如果您已经检查了实体定义,请检查以确保在实际查询失败时没有像这样的错误。 当我遇到类似的错误时,这就是问题所在。