【发布时间】:2013-12-08 14:04:12
【问题描述】:
我有一个包含 2 个类的设计模型:Game 和 Highscore。它们之间的关系是:一个游戏可以有0个或多个高分。因此,我尝试将 Highscore 类定义为 @Embeddable 并在 Game 中编写:
@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 验证器也解决了这篇文章。
【问题讨论】:
-
可能是它成功了,但它不便携。文档说得很清楚:@Embedded
defines a persistent field or property of an entity whose value is an instance of an embeddable class,不是一个集合。 -
我改成了@ElementCollection。
标签: java jakarta-ee jpa java-ee-6