我有一个包含2个类的设计模型:Game
和Highscore
。它们之间的关系是:游戏可以有0或许多高分。所以,我正在尝试将类Highscore定义为@Embeddable
并在游戏I中写道:
@Embedded
private List<Highscore> highscores = new ArrayList<Highscore>();
问题是我从Eclipse中收到以下错误:java.util.List is not mapped as an embeddable
。
有人知道可以做些什么吗?
游戏:
@Entity
@Table(name="games")
public class Game {
@Id
private String name;
@Column(name="highscore_table_size")
private Integer highscoreTableSize;
private String url;
@Embedded
private List<Highscore> highscores = new ArrayList<Highscore>();
...
}
排行榜:
@Embeddable
public class Highscore {
private String playerName;
private Date date;
private int score;
// getters and setter
}
编辑:我也遇到了来自Eclipse的Table xyz cannot be resolved
错误,并且在搜索解决方案时,我找到了this,关闭了针对Build的JPA验证器也做了诀窍这篇文章中提到的错误。
答案 0 :(得分:1)
答案 1 :(得分:0)
您应该拥有OneToMany关联,而不是Embedded。
Embedded用于将对象的字段存储在与其拥有实体的字段相同的表中。将它与List一起使用是没有意义的。
HighScore必须是具有ID的实体,并且您必须在两个实体之间建立OneToMany关联。