java - Hibernate 父类(super class)中带有 @OneToOne 注释的字段

标签 java hibernate inheritance one-to-one

我有类Document,其中包含带有@OneToOne注释的字段Ad ad。 类 ResultDocument 扩展了 Document,应用了 JOINED 继承策略。当我启动我的应用程序时,出现错误: org.hibernate.MappingException:在实体 [ua.translate.model.ad.ResultDocument] 上找不到属性 [ad]

请解释一下此错误的原因。

类文档:

@Entity
@Table(name = "INIT_DOCUMENT_TEST")
@Inheritance(strategy = InheritanceType.JOINED)
public class Document {


@Id
@SequenceGenerator(name = "standart",initialValue = 1)
@GeneratedValue(generator = "standart",strategy =GenerationType.SEQUENCE)
@Column(name = "DOCUMENT_ID")
private long id;

@Lob
@Column(name = "DOCUMENT_FILE",nullable = false)
private byte[] file;

@Column(name = "DOCUMENT_FILE_NAME",nullable = false)
private String fileName;

@Column(name = "DOCUMENT_CONTENT_TYPE",nullable = false)
private String contentType;

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DOCUMENT_AD_ID")
private Ad ad;
.....
}

类结果文档:

@Entity
@Table(name = "RESULT_DOCUMENT_TEST")
@PrimaryKeyJoinColumn(name= "result_document_id")
public class ResultDocument extends Document{

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "TRANSLATOR",nullable = false)
    private Translator downloader;
    .....
}

最佳答案

我认为您不应该从 Document 扩展,因为如果您使用 hibernate 或 JPA,该技术将使用关系而不执行继承。

关于java - Hibernate 父类(super class)中带有 @OneToOne 注释的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39561298/

相关文章:

java - 如何修复 org.hibernate.LazyInitializationException - 无法初始化代理 - 没有 session

MATLAB:从 parfor 调用父类(super class)的方法

C++、虚继承、奇怪的抽象类+克隆问题

java - 更改 JTable 上的 Ctrl + 单击行为

hibernate - 如何在JPA persistence.xml中使用Hibernate SchemaUpdate类?

java - Java 中枚举中的 null

hibernate - HQL 右外连接

c# - 如何制作部分虚拟属性(property)?

java - 当我从另一个类更新时,为什么 "javax.swing.JProgressBar"在旧值之上显示新值?

java - 如果我想从内部类引用它,为什么必须将变量设置为final?