Java PropertyAccessException:使用@OneToOne或@ManyToOne访问字段时出错

Java PropertyAccessException:使用@OneToOne或@ManyToOne访问字段时出错,java,hibernate,jpa,spring-data-jpa,Java,Hibernate,Jpa,Spring Data Jpa,我试图解决访问字段时出错的问题。因此,这里有两个依赖关系可能是原因。第一个: @Entity @Table(name = "user") @Data @NoArgsConstructor @Proxy(lazy=false) public class User { @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment

我试图解决访问字段时出错的问题。因此,这里有两个依赖关系可能是原因。第一个:

@Entity
@Table(name = "user")
@Data
@NoArgsConstructor
@Proxy(lazy=false)
public class User {

    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    @Column(name = "id", unique = true, nullable = false)
    private Integer id;

    @Column(name = "games")
    @OneToMany(mappedBy = "authorId", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
    @Type(type = "org.hibernate.type.settype")
    private Set<Game> games = new HashSet<Game>();
但我一直都有相同的日志:

路径[]上下文中Servlet[dispatcher]的严重[http-nio-8081-exec-6]org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service()引发异常[请求处理失败;嵌套异常为org.springframework.orm.jpa.JpaSystemException:访问字段[private java.lang.Integer.com.exam.entity.User.id]时出错通过对持久性属性[com.exam.entity.User#id]:1的反射;嵌套异常为org.hibernate.property.access.spi.PropertyAccessException:通过对持久性属性[com.exam.entity.User#id]:1]的反射访问字段[private java.lang.Integer com.exam.entity.User.id]时出错,并带有根本原因 java.lang.IllegalArgumentException:无法将java.lang.Integer字段com.exam.entity.User.id设置为java.lang.Integer


您的用户类是否具有id feild的公共setter/getter方法?是的,当然。我添加了lombok库并将类注释为@Data。lombok注释处理器在编译过程中是否产生任何警告?不,根本没有。我只想用json设置请求,比如:{“title”:“Some game”,“author”:1}
@Entity
@Table(name = "game")
@Data
@NoArgsConstructor
@Proxy(lazy = false)
public class Game {

    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    private int id;

    @ManyToOne(targetEntity = com.exam.entity.User.class)
    @JoinColumn(name = "UserID", referencedColumnName = "id", nullable = false)
    private Integer authorId;