Можно ли отобразить карту <String, String> в спящем режиме с помощью отношения @OneToMany? - PullRequest
1 голос
/ 24 октября 2011

у меня есть стол

Разрешение

  • permission_id
  • PERMISSION_NAME
  • permission_desc

и таблица PermissionCategory с отношением один ко многим к Permission

возможно ли вернуть карту в отношении один ко многим вместо списка. это то, что я делаю сейчас в PermissionCategory домен:

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinTable(name = "perm_cat_map", joinColumns = { @JoinColumn(name = "perm_cat_id") }, inverseJoinColumns = { @JoinColumn(name = "permission_id") })
    private List<Permission> permissions = new ArrayList<Permission>(0);

возможно ли иметь что-то вроде:

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
        @JoinTable(name = "perm_cat_map", joinColumns = { @JoinColumn(name = "perm_cat_id") }, inverseJoinColumns = { @JoinColumn(name = "permission_id") })
        private Map<String,String> permissions = new ArrayList<String,String>(0);

где две строки: license_id , имя_правки .

пожалуйста, посоветуйте, спасибо.

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Нет: как бы вы добавили новое разрешение на эту карту?

Но у вас может быть Map<String, Persmission> (см. http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#d0e10955), или вы можете добавить определенный метод к вашей сущности:

public Map<String, String> getPermissionMap() {
    Map<String, String> result = new HashMap<String, String>(permissions.size());
    for (Permission p : permissions) {
        result.put(p.getId(), p.getName());
    }
    return result;
}
0 голосов
/ 24 октября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...