我有一个实体层次结构,所有子类策略都有单个表.我想使用每个属性 - 映射@ManyToOne - 作为主键.当我输入@Id注释时,我收到此错误:
java.lang.ClassCastException:org.hibernate.mapping.SingleTableSubclass无法强制转换为org.hibernate.mapping.RootClass
那么我如何提供将所有属性定义为区分层次结构的标识符?
对于作为实体的层次结构中的最高对象,您的ID必须是唯一的.您不能在子类上定义ID,并且具有一个没有ID的超类(即实体).
可以这样想,这entityManager.find(SuperClass.class, 2);是一个完全合法的电话.如果ID在子类上定义为FK列,则其中多个ID可以具有ID 2!什么会被退回?
使用ManyToOne关系的FK端作为主键首先是荒谬的.根据定义,它将成为OneToOne.
| 归档时间: |
|
| 查看次数: |
3961 次 |
| 最近记录: |