无法通过反射hibernate获取字段值

abd*_*ady 6 java hibernate jpa

我在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<Rating> ratingList = new ArrayList<Rating>();
}
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

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

错误TransactionInterceptor:434 - 由提交异常覆盖的应用程序异常com.vodafone.visradio.dataaccess.exception.DataAccessException:org.hibernate.PropertyAccessException:无法通过com.vodafone.visradio.dataaccess.model.Rating的反射getter获取字段值. .ID

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

Deb*_*kia 5

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

@OneToMany(fetch = FetchType.EAGER, mappedBy = "user") 
private List<Rating> ratingList = new ArrayList<Rating>();
Run Code Online (Sandbox Code Playgroud)

其中user是与之关联的Rating实体中的属性名称.@ManyToOneUser