【发布时间】:2011-05-25 18:13:54
【问题描述】:
我有一个超类 Questions 及其子类 MultipleChoiceQuestions
超类有一个字段activity
我想创建一个Set<MultipleChoiceQuestions> 并通过mappedBy = "activity" 使用OneToMany 注释
例如
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "activity" )
private Set<NQIMultipleChoiceQuestions> mcqQuestions = new HashSet<NQIMultipleChoiceQuestions>();
我收到此错误:
org.hibernate.AnnotationException: mappedBy reference an unknown target entity property
但是,如果我创建一组超类实体,它就可以正常工作,
例如
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "activity")
private Set<NQIQuestions> questions = new HashSet<NQIQuestions>();
有没有办法映射到超类的属性?
【问题讨论】:
-
@sahil,您显示的两行 - 您声称第一行不起作用,但第二行起作用 - 仅在
Set的变量名称上有所不同。 -
@binil : 是的。实际上在第二种情况下,问题是基类,而 mcqQuestion 是子类。
-
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "activity") private Set
questions = new HashSet (); -
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "activity") 私有集
mcqQuestions = new HashSet (); -
NQIQuestions 是 NQIMultipleChoiceQuestions 的超类
标签: hibernate annotations one-to-many