我已经看过很多关于同一论点的问题,但是我没有找到任何解决方案。
我有两个继承同一个类的类。

基本上:

@MappedSuperclass
public abstract class MyGeneric {
  private String idGeneric;
  public String getIdGeneric() {
    return idGeneric;
  }
  public void setIdGeneric(final String idGeneric) {
    this.idGeneric = idGeneric;
  }
}

@Entity
public class Child extends MyGeneric {
    // [some fields]
}


@Entity
public class Parent extends MyGeneric {
    @OneToOne(mappedBy = "idGeneric")
    private Child child;
}


但是该应用程序无法运行,因为:

org.hibernate.AnnotationException: Unknown mappedBy in: mypackage.Parent.child, referenced property unknown: mypackage.Child.idGeneric


我不明白为什么它可以找到属性Child.idGeneric,因为它存在。

谢谢

最佳答案

由于您没有映射关联的反面,因此不能使用mappedBy。
将您的映射替换为以下内容:

@OneToOne
@JoinColumn(name = "idGeneric")
private Child child;

10-07 14:26