【问题标题】:Field with @OneToOne annotation in super class in HibernateHibernate中超类中带有@OneToOne注释的字段
【发布时间】:2016-09-18 18:40:47
【问题描述】:

我有类Document,其中包含带有@OneToOne 注释的字段Ad ad。 类 ResultDocument 扩展 Document,应用JOINED 继承策略。当我启动我的应用程序时,出现错误: org.hibernate.MappingException: property [ad] not found on entity [ua.translate.model.ad.ResultDocument]

请解释一下这个错误的原因。

类文档:

@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;
    .....
}

【问题讨论】:

    标签: java hibernate inheritance one-to-one


    【解决方案1】:

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

    【讨论】:

    • 请详细解释。我不明白,你的意思。
    猜你喜欢
    • 2019-09-16
    • 2013-08-20
    • 2014-10-05
    • 2016-07-19
    • 2011-06-03
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多