Middlegen ou XDoclet?

2 respostas
maresp

Estou no início de um projeto grande e que no momento altero muitas vezes o meu modelo, consequentemente o meu mapeamento. Estou utilizando o xdoclet para geração dos .hbm.xml. Porém o xdoclet já me deixou na mão em 2 casos:
<nested-composite-element>
<key-many-to-one>
Talvez surja mais algum mas não posso ficar consertando os buracos deixados pelo xdoclet toda vez que gero os mapeamentos.
O Middlegen também tem estas deficiências? Ele se baseia no banco de dados pra gerar os hbm.xml?

2 Respostas

urubatan

acho que os dois casos o XDoclet resolve,
o da chave, ele resolve com certeza,
você só tem que criar um objeto para ser a chave primária, contendo todas as propriedades que constam na chave,
mapeia estas propriedades normalmente, e na classe destino, declara uma propriedade do tipo da chave (classe criada para representar a chave) com a tag especificando que ela é o ID.

o unico porem, é que a classe ID tem de ser Serializavel.

maresp

A chave composta não tem problema (composite-element) ele gera na boa. O problema está com o “nested”. Quanto ao <key-many-to-one> eu estou com as tags assim:

/** * @return Returns the item. * @hibernate.many-to-one * @hibernate.column name = "sc_id" * @hibernate.column name = "mtaux_id" * @hibernate.column name = "fil_id" * @hibernate.column name = "sci_dt_entrega" */ public RelationshipItemSolicitacaoCompra getItem() { return item; }

E olha o mapeamento que ele me dá:

<many-to-one name="item" class="br.com.atmtec.bean.RelationshipItemSolicitacaoCompra" cascade="none" outer-join="auto" update="true" insert="true" access="property" > <column name="sc_id" /> <column name="mtaux_id" /> <column name="fil_id" /> <column name="sci_dt_entrega" /> </many-to-one>
pq ele não coloca o <key-many-to-one> invés do simples <many-to-one>? Só pra explicar eu tenho uma classe ItemSolicitaçãoCompraPK que é representa minha chave composta neste caso.

Criado 24 de setembro de 2004
Ultima resposta 24 de set. de 2004
Respostas 2
Participantes 2