我有一个包含 2 个类的设计模型:Game
和 Highscore
。它们之间的关系是:一场比赛可以有0个或多个高分。因此,我尝试将 Highscore 类定义为 @Embeddable
并在 Game 中编写:
@Embedded
private List<Highscore> highscores = new ArrayList<Highscore>();
问题是我从 Eclipse 中收到以下错误:java.util.List 未映射为可嵌入
。
有人知道可以做什么吗?
游戏:
@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无法解析
错误,在寻找解决方案时,我发现 this ,并关闭 Build 的 JPA validator 也可以解决本文中出现的错误。
最佳答案
您应该使用@ElementCollection为此。
摘自文档:
Defines a collection of instances of a basic type or embeddable class. Must be specified if the collection is to be mapped by means of a collection table.
关于java.util.List 未映射为可嵌入的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166087/