我可以将ORM一对多关系作为一个明确的类吗?

时间:2012-06-06 08:31:50

标签: hibernate orm

我有一个用户和一个特权类。用户可以拥有许多权限。到目前为止一切都很好。

我有一些与用户类相似的关系。但是我不想让用户混淆所有这些东西。

所以我认为将用户和特权之间的关系明确化是一个好主意。 我希望得到一个UserPrivilges类,它与用户具有一对一的关系,并且与特权有一对多的关系。

如果可能的话,可以获得一些反馈。

THX 每

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你只想在一个单独的类中组合几个OneToMany关联,并在User中有一个这个类的实例。但从语义上讲,这些关联是用户和其他实体之间的关联。

如果是这样,您应该按原样保留数据库scheam,只需使用User内部的嵌入对象对您的关联进行分组:

@Embeddable
public class UserPrivileges
    @OneToMany
    private Set<Privilege> somePrivileges;

    @OneToMany
    private Set<Privilege> someOtherPrivileges;

    @OneToMany
    private Set<Privilege> yetOtherPrivileges;
}

@Entity
public class User {

    @Embedded
    private UserPrivileges privileges;
}

有关详细信息,请参阅the documentation