java.util.List 未映射为可嵌入的

标签 java jakarta-ee jpa java-ee-6

我有一个包含 2 个类的设计模型:GameHighscore。它们之间的关系是:一场比赛可以有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/

相关文章:

JPA - 多对多集合的分页查询返回错误数量的实体

java - 我的 CipherOutputStream 无声地失败

Java比较类的元素

java - Apache Wicket - wicket-auth-sessions - 防止多重登录

java - 在使用 Ehcache 刷新只读缓存之前,我需要锁定它吗?

java - JPA XML 映射文件可以很好地解析,但在作为 JUnit 测试运行时无法解析

java - Django ORM 到 Spring Hibernate 的映射

java - 预初始化工作线程池以重用连接对象(套接字)

java - 客户端从服务器读取太多字节?

java - JPA,GeneratedValue 自动递增 50