Dúvida JPA x .hbm - <component>

1 resposta
sudeval

Ola Pessoal,

Ao utilizar JPA existe algo como a tag do .hbm (http://docs.jboss.org/hibernate/stable/core/reference/en/html/mapping.html)
em anotação ou mesmo através de XML ?

Ela é útil nos casos em que você tem um banco com uma tabela que possui mais de um objeto de dominio do sistema.

1 Resposta

faelcavalcanti

eu não acho legal para as classes que necessitam se relacionar com esta, pois ela irá sempre copiar como o relacionamento é feito, ou seja, necessitará do mesmo component ou columns/keys mapeado nas outras classes, como exemplo abaixo:

mapeando a classe OrderLine
<class name="OrderLine">
    
    <composite-id name="id" class="OrderLineId">
        <key-property name="lineId"/>
        <key-property name="orderId"/>
        <key-property name="customerId"/>
    </composite-id>
    
    <property name="name"/>
    
    <many-to-one name="order" class="Order"
            insert="false" update="false">
        <column name="orderId"/>
        <column name="customerId"/>
    </many-to-one>
    ....
    
</class>
mapeando um relacionamento de 1:N para classe OrderLine
<many-to-one name="orderLine" class="OrderLine">
<!-- the "class" attribute is optional, as usual -->
    <column name="lineId"/>
    <column name="orderId"/>
    <column name="customerId"/>
</many-to-one>
ao invés disto eu prefiro utilizar uma classe representar o relacionamento, quando este relacionamento também é visualizado por mais de uma classe

o exemplo acima retirei do site
http://docs.jboss.org/hibernate/stable/core/reference/en/html/components-compositeid.html

Criado 15 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 1
Participantes 2