Java 在Hibernate中映射两个抽象实体的映射

Java 在Hibernate中映射两个抽象实体的映射,java,hibernate,Java,Hibernate,我正在尝试在hibernate中映射以下数据结构: @OneToMany(fetch = FetchType.EAGER,cascade=Array(CascadeType.REMOVE,CascadeType.REFRESH,CascadeType.MERGE,CascadeType.PERSIST)) @JoinTable(name = "links", joinColumns = Array(new JoinColumn(name = "link_id"))) @MapKey(

我正在尝试在hibernate中映射以下数据结构:

  @OneToMany(fetch = FetchType.EAGER,cascade=Array(CascadeType.REMOVE,CascadeType.REFRESH,CascadeType.MERGE,CascadeType.PERSIST))
  @JoinTable(name = "links", joinColumns = Array(new JoinColumn(name = "link_id")))
  @MapKey(name="id")
  @Fetch(value = FetchMode.SELECT)
  @Access(AccessType.PROPERTY)
  def getLinksMapNative:java.util.Map[MyClass,MyClass] = {
    linksMap
  }
但我有以下问题:

  • 如果我离开MapKey注释,当从会话加载时,映射的键是MyClass的整数id,而不是MyClass的实例,这将在运行时导致ClassCastException
  • 如果我取下它,因为MyClass是一个抽象实体,我得到:

    org.hibernate.InstantiationException:无法实例化抽象类或接口

在坚持的时刻

可以在Hibernate中映射两个抽象实体的映射吗?如果可以,如何映射