无法通过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 ();
其中user
是Rating
实体中与User
具有@ManyToOne
关联的属性名称。
另一件可能导致这种情况的事情是,如果你没有正确地完成你的标准。
例如,如果您在条件中添加"rating"
,但实际上您需要"rating.id"
。 这将导致出现同样的错误消息。
因此,如果您已经检查了实体定义,请检查以确保在实际查询失败时没有像这样的错误。 当我遇到类似的错误时,这就是问题所在。
- JPA + Hibernate – 如何在不获取该实体的情况下获取子实体的FK?
- 为什么Hibernate默认设置动态insert = false
- JPA spring boot内部join – with-clause引用了两个不同的from-clause元素错误
- 错误的布尔映射Hibernate(ArrayIndexOutOfBoundsException)
- 创建名为’entityManagerFactory的bean时出错
- 一次执行多个本机查询
- 从Spring MVC XML文件迁移到javaconfig。 我真的迷失了我的数据库XML文件
- 在Hibernate的XML配置文件中指定默认值
- 如何使用Hibernate映射MySQL DATE’EMA’&TIME ’00:00:00′