XDoclet - Hibernate - set com chave em 2 colunas [RESOLVIDO]

2 respostas
L

Pessoal,

Preciso mapear para o hibernate, utilizando o XDoclet um set que possui 2 colunas de uma tabela como chave.

Isto é fácil de fazer direto no hbm.xml assim:

<set
            name="anySet"
            table="ANY_TABLE"
            lazy="true"
            cascade="none"
            sort="unsorted"
        >
            <key>
				<column name="KEY_1"/>
				<column name="KEY_2"/>
            </key>

            <one-to-many
                  class="com.blah.Foo"
            />

        </set>

Porém, com com o XDoclet não consigo este resultado. ele gera só um <key column=“KEY_2”/>

/**
     * @hibernate.set 
     * 		lazy = "true"
     * 		table = "ANY_TABLE"
     * @hibernate.collection-one-to-many
     * 		class = "com.blah.Foo"
     * @hibernate.collection-key
     *  	column = "KEY_1"
     * 		column = "KEY_2"
     */

Alguém sabe o que posso fazer pra conseguir isto? Parece que no XDoclet 1.2 havia mesmo um issue relatando isso mas, teoricamente no 1.2.3 foi corrigido.

Alguém tem uma idéia de como resolver?

Agradeço a ajuda.

[]'s

2 Respostas

L

Pessoal,

Eu encontrei a solução, se ajudar alguém aí vai:

/**
     * @hibernate.set 
     * 		lazy = "true"
     * 		table = "ANY_TABLE"
     * @hibernate.collection-one-to-many
     * 		class = "com.blah.Foo"
     * @hibernate.collection-key
     * @hibernate.collection-key-column
     *   name = "KEY_1"
     * @hibernate.collection-key-column
     *   name = "KEY_2" 
     */

Que gera:

&lt;set
            name="anySet"
            table="ANY_TABLE"
            lazy="true"
            cascade="none"
            sort="unsorted"
        &gt;

            &lt;key
            &gt;
                &lt;column
                    name="KEY_1" 
                /&gt;
                &lt;column
                    name="KEY_2" 
                /&gt;
            &lt;/key&gt;

            &lt;one-to-many
                  class="com.blah.Foo"
            /&gt;

        &lt;/set&gt;

Tks!

[]'s :wink:

Lelis_el_Quatilas

Rodando aqui, obtive:

&lt;set
            name="stocksValues"
            table="ANY_TABLE"
            lazy="true"
            inverse="false"
            cascade="none"
            sort="unsorted"
        &gt;

              &lt;key
                  column=""
              /&gt;

              &lt;one-to-many
                  class="com.blah.Foo"
              /&gt;
        &lt;/set&gt;

porque?

Criado 13 de maio de 2005
Ultima resposta 25 de jan. de 2007
Respostas 2
Participantes 2