Mapear hashmap no hibernate usando annotacoes

1 resposta
L

Ola Pessoal.

Estou passando o mapeamento de um projeto que hoje esta em xml para annotations.

Porem nos ultimo dias esbarrei em um problema. Meu modelo de BD esta assim:

user(user_id, …)
entity(entity_id, … )
user_rights(user_id,entity_id, rights )

Utilizando xml, tenho esse codigo:

<map name="rights" table="user_rights" lazy="false" cascade="all" order-by="entity_id asc" >
            <key column="user_id"/>
            <index column="entity_id" type="string"/>
            <element column="rights" type="string"/>
        </map>

e na classe, obviamente tenho o hashmap, onde nos indices tenho o entity_id e nos valores tenho o right equivalente:

private Map rights  = new HashMap();

isso funciona.

Agora, como ficaria esse codigo usando annotations?? estou tentando fazer isso a um bom tempo, mas sem resultados…

obrigado.

1 Resposta

Lavieri
public class User {
        @OneToMany(mappedBy="user")  //o nome da propriedade de "value" que liga a esta classe
        @MapKey(name="entity_id")  //a "key" do mapa, pode ser qualquer propriedade
        public Map&lt;Integer,Rights&gt; getRights() {... }
}

public class Rights {
        @Id Integer getRightsId() { ... }
        
        @Colmun(name="entity_id")
        Integer getEntityId() { ... }
        //restante da classe aqui

        @ManyToOne
        @JoinColumn(name="user_id")
        public User getUser() { ... }
}
Criado 3 de maio de 2009
Ultima resposta 4 de mai. de 2009
Respostas 1
Participantes 2