我们说我有以下模型:
OnChartValueSelectedListener
是否可以映射@Entity
public class User {
...
@ManyToMany
private Set<Permission> allowedPermissions;
...
}
@Entity
public class Permission {
...
private boolean isDefault;
...
}
,使其包含与User.allowedPermissions
连接的Permissions
以及与User
相关但未明确连接的<{1}}?
我使用Hibernate作为Jpa提供程序。
答案 0 :(得分:0)
那么这是不可能的,因为你没有足够的关于用户权限的信息。
如果您考虑多对多关系,则在数据库上它是两个其他表之间的关系表。
现在,在您的用户实体中,您正确使用Set来查看此交叉表中存储的所有关系(让我们说user_permission)。但是在这个级别你无法知道默认权限,可以很容易地通过PermissionDAO检索(我假设您使用DAO /服务设计,如果不根据您的需要进行调整)。
如果你想要一个超集(allowedPermissions + defaultPermissions),那么你可以在服务层写一个实用工具方法,如果你愿意:
getAllPermissions(User user) {
return userDAO.getAllowedPermissions(user).addAll(permissionDAO.getDefaultPermissions());
}
为何在服务层?因为您需要同时使用两个DAO,并且您不想将DAO注入另一个DAO。 如果这有用,请告诉我。