gpt4 book ai didi

java - JPA spring boot,通过持久属性的反射访问字段 XXXX 时出错

转载 作者:行者123 更新时间:2023-12-01 18:27:10 25 4
gpt4 key购买 nike

在 Spring Boot 中使用 Mysql、intellij 作为 ide 来使用 JPA。

当我尝试保存游戏实体时,我遇到以下错误,但如果保存玩家实体,一切正常

"Error accessing field [private java.lang.Integer com.raul.daus.Entities.Player.idPlayer] by reflection for persistent property [com.raul.daus.Entities.Player#idPlayer] : 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;

这里是玩家实体

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;

谢谢

最佳答案

Game 中的 idPlayer 字段映射错误。应该是:

@Entity
public class Game {

@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "idPlayer")
private Player idPlayer;

}

关于java - JPA spring boot,通过持久属性的反射访问字段 XXXX 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60214166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com