Hibernate присоединиться к другому присоединенному столу - PullRequest
0 голосов
/ 24 марта 2012

Предположим, у меня есть три класса; UserAccount, UserGroup и Role.

UserGroup и Role похожи;

public class UserGroup{

.....

@ManyToMany
@JoinTable(name="..." .......)
List<Role> roleList=new ArrayList<Role>();


}

public class Role{
@ManyToMany(mappedBy="roleList")
List<UserGroup> groupList=new ArrayList<UserGroup>();

}

Я хочу связать свой класс UserAccount с той объединенной таблицей, которая описывает отношения между UserGroup и Role

public class UserAccount{

...

@OneToMany
@JoinTable(???????)
List<???> ??????

} 

Есть ли способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 24 марта 2012

Я не верю, что есть естественный способ сделать это с вашей текущей структурой объектов, но это потому, что ваши объекты не определены таким образом, который соответствует вашим потребностям.

Если вы хотите связатьсущность учетной записи пользователя со списком связанных групп пользователей и ролей, а не просто для группы пользователей или просто для роли, вам необходимо создать сущность, представляющую эту комбинацию.

Это будет выглядеть примерно следующим образом:

Вместо того, чтобы группа пользователей относилась к роли в отношении «многие ко многим», определяемой таблицей соединений, создайте сущность UserGroupWithRole, которая имеет отношение «многие к одному» как с UserGroup, так и с Role, исоздать отношение к списку UserGroupWithRole сущностей в вашем UserAccount.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...