@ManyToOne关联@MappedSuperclass标注的InstrumentUsage类时出现未知实体错误的问题咨询
@ManyToOne关联@MappedSuperclass标注的InstrumentUsage类时出现未知实体错误的问题咨询
我有一个父类:
@MappedSuperclass public abstract class CommonDate extends HibernatePersistentObject implements Serializable { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "INSTRUMENT_ID", nullable = false, unique = true) private InstrumentUsage instrumentUsage; }
这个类没有@Id注解,因为它只是一个包含额外属性的父类,不会对应任何数据库表。
另一个继承自CommonDate的类是:
@Entity @Table(name = "OBSERVATION_DATES") public class ObservationDate extends CommonDate { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "DATES_SEQ") @SequenceGenerator(name = "DATES_SEQ", sequenceName = "DATES_SEQ") @Column(name = "OBSERVATION_DATE_ID") private int ObservationDateId; public ObservationDate(InstrumentUsage instrumentUsage) { super(instrumentUsage); } public ObservationDate() { super(); } }
这个类是我想要写入数据库OBSERVATION_DATES表的实体类。
还有第三个类InstrumentUsage,它的定义是:
@MappedSuperclass public abstract class InstrumentUsage extends HibernatePersistentObject implements Serializable { }
它同样没有@Id注解,但标注了@MappedSuperclass。现在我遇到的错误是:
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on domain.ObservationDate.instrumentUsage references an unknown entity: domain.InstrumentUsage at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:100) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processEndOfQueue(InFlightMetadataCollectorImpl.java:1808)
是不是因为InstrumentUsage不是@Entity标注的类,所以我不能用@ManyToOne来关联它?
备注:内容来源于stack exchange,提问作者Michu93
相关产品推荐
相关产品推荐

