gpt4 book ai didi

java - hibernate 、OneToMany、AnnotationException

转载 作者:行者123 更新时间:2023-11-29 05:26:22 26 4
gpt4 key购买 nike

我对 OneToMany 注释有疑问

@Entity
@Table(name = "RESULT_HISTORY")
public class ResultHistoryImpl implements ResultHistory, Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;


@OneToMany
private final Set<Game> games = new HashSet<>();


...

}

和类

@Entity
@Table(name = "GAME")
public class GameImpl implements Game, Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

...
}

我有更多的字段、setters/getters 和构造函数

我使用 spring,在我的配置文件中我有 packagesToScan,我把这些类的包放在那里

问题是我得到 org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class

我阅读了很多关于 stackoverflow 的主题,所以问题不在于使用 org.hibernate.annotation 等

最佳答案

你试过的是不可能的。 Game是一个接口(interface),您不能将接口(interface)映射到 DB,因为 hibernate 不知道要使用哪个实现。但是你能做的是

  1. 在所有实体类中使用 GameImpl直接上课。我的意思是纠正你的ResultHistoryImpl对此进行分类:@OneToMany private final Set<GameImpl> games = new HashSet<GameImpl>();
  2. 如果你想有另一个抽象,添加一个抽象类AbstractGame implements Game并用 @Entity 注释并使用它代替 Game界面。

关于java - hibernate 、OneToMany、AnnotationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22557396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com