Java JPA spring引导,通过反射访问字段XXXX以获取持久属性时出错
在spring boot中使用Mysql和intellij作为ide使用JPA 当我试图保存游戏实体时,我面临以下错误,但是如果保存一个玩家实体,一切正常Java JPA spring引导,通过反射访问字段XXXX以获取持久属性时出错,java,spring-boot,jpa,persistence,Java,Spring Boot,Jpa,Persistence,在spring boot中使用Mysql和intellij作为ide使用JPA 当我试图保存游戏实体时,我面临以下错误,但是如果保存一个玩家实体,一切正常 Data @Entity @Table(name = "players") public class Player { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "idPlayer", insertable = false, u
Data
@Entity
@Table(name = "players")
public class Player {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idPlayer", insertable = false, updatable = false, nullable = false)
private Integer idPlayer;
// player name field with 'ANÒNIM' as default
@Column(name = "player_name", nullable = false)
@ColumnDefault("'ANÒNIM'")
private String player_name;
// Timestamp field with the registered date
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "registerDate", nullable = false, updatable = false)
private Date registerDate;
// One to Many relationship with the player games
@OneToMany(targetEntity = Game.class, mappedBy = "idPlayer", fetch = FetchType.LAZY, cascade = CascadeType.ALL,
orphanRemoval = true)
private List<Game> games = new ArrayList<>();
@Column(name = "rate_success", nullable = true, updatable = true)
private double rateSuccess;
“通过永久属性[com.raul.daus.Entities.Player]的反射访问字段[private java.lang.Integer com.raul.daus.Entities.Player]时出错:1;”
以下是游戏实体:
@Entity
@Data
@Table(name = "games")
public class Game {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_game", nullable = false, insertable = false, updatable = false)
private Integer id_game;
@Column(name = "id_dice", nullable = false)
@OneToMany(targetEntity = Dice.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY,
mappedBy = "id", orphanRemoval = true)
private List<Dice> dices = new ArrayList<Dice>();
@ManyToOne(targetEntity = Player.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "idPlayer")
private Integer idPlayer;
@Column(name = "game_result")
private Integer game_result;
@实体
@资料
@表(name=“games”)
公开课游戏{
@Id@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id\u game”,nullable=false,insertable=false,updateable=false)
私有整数id_博弈;
@列(name=“id_dice”,nullable=false)
@OneToMany(targetEntity=Dice.class,cascade=CascadeType.ALL,fetch=FetchType.LAZY,
mappedBy=“id”,删除=真)
私有列表骰子=新的ArrayList();
@manytone(targetEntity=Player.class,cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name=“idPlayer”)
私有整数层;
@列(name=“游戏结果”)
私有整数博弈结果;
这里是播放器实体
Data
@Entity
@Table(name = "players")
public class Player {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idPlayer", insertable = false, updatable = false, nullable = false)
private Integer idPlayer;
// player name field with 'ANÒNIM' as default
@Column(name = "player_name", nullable = false)
@ColumnDefault("'ANÒNIM'")
private String player_name;
// Timestamp field with the registered date
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "registerDate", nullable = false, updatable = false)
private Date registerDate;
// One to Many relationship with the player games
@OneToMany(targetEntity = Game.class, mappedBy = "idPlayer", fetch = FetchType.LAZY, cascade = CascadeType.ALL,
orphanRemoval = true)
private List<Game> games = new ArrayList<>();
@Column(name = "rate_success", nullable = true, updatable = true)
private double rateSuccess;
数据
@实体
@表(name=“players”)
公开课选手{
@Id@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“idPlayer”,insertable=false,updateable=false,nullable=false)
私有整数层;
//默认为“ANÒNIM”的玩家姓名字段
@列(name=“player\u name”,null=false)
@ColumnDefault(“ANÒNIM”)
私人弦乐演奏者姓名;
//带有注册日期的时间戳字段
@时态(TemporalType.TIMESTAMP)
@列(name=“registerDate”,null=false,updateable=false)
私人日期登记日期;
//与玩家游戏的一对多关系
@OneToMany(targetEntity=Game.class,mappedBy=“idPlayer”,fetch=FetchType.LAZY,cascade=CascadeType.ALL,
(删除=真)
私有列表游戏=新建ArrayList();
@列(name=“rate\u success”,nullable=true,updateable=true)
私人双重成功;
谢谢游戏中的
idPlayer
字段映射错误。它应该是:
@实体
公开课游戏{
@manytone(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name=“idPlayer”)
私有玩家层;
}