Dúvida com o Hibernate

6 respostas
fcanjos

Olá pessoal!!!

Digamos que eu precise mapear a seguinte tabela no Hibernate:

Tabela Teste

id_teste
nome
id_teste_pai

Gostaria de ter uma entidate dentro da entidade, e não simplesmemente mapear o id_teste_pai como uma propriedade.
Como fazer isso?

Desde já agradeço!!

6 Respostas

M

Existe Bancos como o Oracle que vc consegue Criar um Tipo de dados para associar a uma coluna.

Por questão de portabilidade (O Hibernate Fornece isso), recomendo não fazer deste jeto

nas Entidades deve ficar do jeito que você escreveu, e este problema deve sr resolvido nas classes.

suas Classes ficam mais ou menos assim

M

E O Mapeamento deve ficar algo assim no Teste.hbm.xml

M

E O Mapeamento deve ficar algo assim no Teste.hbm.xml

fcanjos

E ai makr, blz?!?!?

O problema é que eu não quero criar mais uma classe para poder mapear isso.
Gostaria que a classe teste fosse pai dela mesma.
Tive dando uma pesquisada e acho que o que terei que criar dois mapeamentos, um one-to-many e outro many-to-one
Desse jeito a minha classe ficaria mais ou menos assim.

class Teste{

private Long id;

private String nome;

private java.util.Set testesFilhos

private Teste testePai;

}

Assim tanto o pai quanto os filhos ficam mapeados.
Ainda não testei essa solução, portanto não garanto nada e qualquer observação será bem vinda!!
:thumbup:

_fs

Funciona redondinho. Mas talvez vá ter problemas para os nodos que não possuem pais.

Arcadex

Faço assim o meu auto-relaciomento e funciona sem problemas

<class 
    name="br.com.polaris.billing.domain.Item" 
    table="ITRTI"
>
    <id
        name="codigo"
        type="java.lang.Integer"
        column="CD_ITRTI"
    >
        <generator class="sequence">
            <param name="sequence">SQ_ITRTI</param>
        </generator>
    </id>

    <property
        name="descricao"
        type="java.lang.String"
        column="DS_ITRTI"
        not-null="true"
        length="50"
    />
    <property
        name="nivelHierarquico"
        type="java.lang.Integer"
        column="CD_ITRTI_NVHRQ"
        not-null="true"
        length="3"
    />


<!--   AUTO-RELACIONAMENTO  classe Item para classe Item -->
    <many-to-one
        name="itemPai"
        class="br.com.polaris.billing.domain.Item"
        not-null="false"
    >
        <column name="CD_ITRTI_PAI" />
    </many-to-one>
 </class>
Criado 9 de maio de 2005
Ultima resposta 13 de mai. de 2005
Respostas 6
Participantes 4