首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有超类成员的"mappedBy“的多个mappedBy关系

使用带有超类成员的"mappedBy“的多个mappedBy关系
EN

Stack Overflow用户
提问于 2011-07-20 16:13:54
回答 1查看 1.9K关注 0票数 4

我正在使用Hibernate开发一个应用程序,并试图对以下场景进行建模:

我有一个活动抽象类,定义如下:

代码语言:javascript
复制
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="activityType")
@Table(name = "BF_ACTIVITY")
public abstract class Activity extends PersistableObject {

    @ManyToOne
    @JoinColumn(name = "ASSIGNED_TO")
    protected  Contactable assignedTo;

    @ManyToOne
    @JoinColumn(name = "RAISED_BY")
    protected  Contactable raisedBy;

注意,我使用的是单表继承(因此所有实现对象都将使用相同的表)并设置了一个DiscriminatorColumn。

现在我有两个扩展活动的对象: ToDo和Status:

代码语言:javascript
复制
@Entity
@Table(name = "BF_TODO")
@DiscriminatorValue("Todo")
public class ToDo extends Activity {
...


@Entity
@Table(name = "BF_STATUS")
@DiscriminatorValue("Status")
public class Status extends Activity {
...

再次注意,对于这两种实现,我都设置了一个DiscriminatorValue。

最后,我希望有一个Person对象,并且person可以有一个状态列表和一个ToDo列表--我还想捕获双向关系,所以我使用mappedBy配置来建模它,但是在这两种情况下都使用超类“活动”中存在的"raisedBy“字段:

代码语言:javascript
复制
public abstract class Person {

    @ManyToMany(mappedBy="raisedBy", targetEntity=Activity.class)
    private List<ToDo> todoItems = new ArrayList<ToDo>();

由于我使用的是来自超类的mappedBy成员变量"raisedBy“,所以我也指定了targetEntity (否则它无法在ToDo对象中找到字段)。

问题在于,当我试图调用getTodoItems()时,它实际上只是将由"raisedBy“链接的所有”活动“对象返回给当前的人。例如,它抛出一个强制转换异常,因为它期待ToDos的列表,但是Hibernate也返回列表中的状态对象。

我希望mappedBy配置和DiscriminatorValue一起足够让这个工作--有没有人遇到这个问题或者解决了它?

谢谢

编辑

我刚找到这篇文章:

有人能为我指出一个好的方向吗?我是否可以按下面的方式更新我的个人,以便在鉴别器列中使用@Where?

代码语言:javascript
复制
public abstract class Person {

    @ManyToMany(mappedBy="raisedBy", targetEntity=Activity.class)
    @Where(clause="activityType=Todo")
    private List<ToDo> todoItems = new ArrayList<ToDo>();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 16:36:07

添加注释:@Where(子句= "activityType= 'Todo'")

但是它是hibernate注释,而不是JPA

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6765076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档