[hibernate] Composite-id xdoclet tag

8 respostas
maresp

Quais as tags do hibernatedoclet pra gerar composite-id?

8 Respostas

Daniel_Quirino_Olive

http://hibernate.org/72.html

maresp

Desculpe mas esse link não tem nada sobre o que perguntei. Só tem um exemplinho pobre.

Daniel_Quirino_Olive

Entrando no site do XDoclet você vai ter uma documentação sobre todos os conjunto de tags suportadas. Em http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html você tem as tags de XDoclet para Hibernate. :slight_smile:
Boa leitura.

Daniel_Quirino_Olive

Aliás, não sei se também é o caso, mas eis mais uma dica: http://hibernate.org/118.html#A11

maresp

“Daniel Quirino Oliveira”:
Entrando no site do XDoclet você vai ter uma documentação sobre todos os conjunto de tags suportadas. Em http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html você tem as tags de XDoclet para Hibernate. :slight_smile:
Boa leitura.

Daniel, obrigado pelo seu empenho mas já vasculhei todos os docs e as tags. Não existe uma tag pra fazer isso. Mas dá pra fazer assim. Foi mal pq não imaginei que tivesse um tópico deste no fórum. Isto só vem confirmar que a base do GUJ está ficando muito boa mesmo.

jack_ganzha

O modulo de XDoclet para o Hibernate não tem uma tag para composite id. Veja nessa pagina:

Shortcomings

  • no support for composite identifiers - we would need to add both a @hibernate.composite-id tag and a @hibernate.column tag

Mas, numa visita ao JIRA, parece que estão implementando isso:

CVS COMMIT LOG:
SUBJECT: [Xdoclet-devel] CVS: xdoclet/modules/hibernate/src/xdoclet/modules/hibernate HibernateTagsHandler.java,1.4,1.5 XDocletModulesHibernateMessages.java,1.4,1.5
XDT-219 - Partial implementation of composite ID support.

valeuz…

maresp

Isto esclareceu minha dúvida neste tópico. Vou postar este link lá.

Ok Marcos… a tag então está no forno, logo a gente poderá usar. Apesar do uso das chaves compostas não ser uma boa prática com o hibernate, não gosto da idéia de utilizar surrogate keys em uma tabela que representa a relação muitos-para-muitos.

maresp

Estou tendo mais uma dificuldade utilizando o hibernatedoclet pra gerar meus mapeamentos. Agora o problema é o seguinte. Tenho uma relação many-to-many (Filial MaterialAux) onde fui obrigado a criar uma classe para mapear a tabela que armazena os relacionamentos (RelationshipFilialMaterial) pq possuo mais atributos na tabela. Como já foi discutido até aqui sabemos que o hibernatedoclet não possuí uma tag para composite-id. Neste caso foi necessário (e recomendável tb) criar uma classe que representa minha composite-id. O problema é que neste caso preciso utilizar o elemento <nested-composite-element> (o hibernatedoclet não possui suporte à este elemento). Olhando o xml da classe Filial fica mais fácil compreender:

...
        <set
            name="materiaisAux"
            table="material_aux_fil"
            lazy="true"
            inverse="false"
            cascade="none"
            sort="unsorted"
        >

              <key
                  column="fil_id"
              >
              </key>

              <composite-element
                  class="br.com.atmtec.bean.RelationshipFilialMaterialAux"
              >
				<nested-composite-element class="br.com.atmtec.bean.FilialMaterialAuxPK" name="id">
					<many-to-one 
			            name="materialAux"
						class="br.com.atmtec.bean.MaterialAux"
			            cascade="none"
			            outer-join="auto"
			            update="true"
			            insert="true"
			            access="property"
			            column="mtaux_id"
			            not-null="true"
			        />
				</nested-composite-element>
        <many-to-one
            name="statusMovimento"
            class="br.com.atmtec.bean.StatusMovimento"
            cascade="none"
            outer-join="auto"
            update="true"
            insert="true"
            access="property"
            foreign-key="material_aux_fil_stmov_id_fkey"
            column="stmov_id"
            not-null="true"
        />

              </composite-element>

        </set>

O elemento <nested-composite-element> eu fiz na mão mesmo. Agora alguém sabe se existe uma forma dele ser gerado pelo hibernatedoclet?

Criado 9 de setembro de 2004
Ultima resposta 15 de set. de 2004
Respostas 8
Participantes 3