how para devolver Map <Key, Value> con HQL

tengo una mesa

Permis:

carné de identidanombr desc

lo que estoy haciendo ahora es hacer una consulta que devuelva un objeto de permiso y luego poner los valores en el mapa mediante programación

1- Pero me preguntaba si es posible hacer un HQL (o sql nativo si no es posible) para seleccionar el permission_id, permission_name y devolverlos en un mapa.

2- ¿es posible devolver el mapa en una relación de uno a muchos en lugar de seguir la lista o establecer

@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);

es posible tener algo como:

@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);

donde las dos cadenas son permission_id, permission_name.

Respuestas a la pregunta(5)

Su respuesta a la pregunta