用Mysql,intellij作为IDE在Spring启动时使用JPA。
当我尝试保存游戏实体时,我会遇到以下错误,但如果保存玩家实体,则所有操作都很正常
@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
字段映射错误。应该是:
java prettyprint-override">@Entity
public class Game {
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "idPlayer")
private Player idPlayer;
}
当我试图获得实体属性时,我遇到了奇怪的问题: 我的实体:
我有一个非常简单的Hibernate设置,但我收到这个奇怪的错误时,保存一个实体: org.hibernate.property.access.spi.属性访问字段[私有java.lang.字符串com.example.demo.Student.first名称]通过反射为持久属性[com.example.demo.学生#firstName]:学生[id=0, firstName=My, lastN
/实体类/包实体的代码; 完整堆栈跟踪是
问题内容: 我找到了一种通过来获取继承成员并通过来获得 ; 私有成员的方法,但是我正在寻找私有的继承字段。我怎样才能做到这一点? 问题答案: 这应该演示如何解决它: (或Class.getDeclaredFields用于所有字段的数组。) 输出:
问题内容: 考虑这个例子: 允许您通过反射来访问类的私有字段似乎是不合逻辑的。为什么有这样的功能?允许这样的访问不是“危险”吗? 问题答案: 专用旨在防止意外滥用,而不是作为一种安全机制。如果您选择绕过它,那么您可以自行承担风险,并假设您知道自己在做什么。
问题内容: Java中是否可以通过反射访问私有字段str?例如获取该字段的值。 问题答案: 是。 然后,使用字段对象获取类实例上的值。 请注意,方法通常会使人们感到困惑。你有该字段,但没有该对象的实例。你必须将其传递给方法