Duvida sobre mapeamento hibernate

2 respostas
A

Tenho uma classe cargo
que tem um relacionamento many-to-one com centro de custo que por sua vez é “extend” Pessoa

Mais ou menos assim

Classe Centro_Custo.java

public class Centro_Custo extends Pessoa {
    private String pessoa_id;
    private String custo;
...
getters and setters .
...

Mapeamento Centro_custo.hbm.xml

<joined-subclass name="Centro_Custo" table="centro_custo" extends="Pessoa" >
 	   <key  column="pessoa_id"  on-delete="cascade" />
	<property name="custo" />

</joined-subclass>

Classe Cargo.java

public class Cargo {
    private int id;
    private Centro_Custo cc;
...
getters and setters 
...

Mapeamento Cago.hbm.xml

<class name="Cargo" table="cargo" >
        <id name="id" column="id">
            <generator class="increment" />
        </id>
        <many-to-one name="cc" class="Centro_Custo"    cascade="save-update"/>
...
</class>

e esta funcionando exceto por um unico motivo
toda vez que vou inserir um cargo ele automaticamente inseri um novo Centro_Custo
não qria esse comportamento e gostaria de bloquear isso no mapeamento.

haveria como?

2 Respostas

rdantas

tem, mas vai depender de como vc está gravando o cargo. Se puder colocar o fonte do metodo onde vc grava tudo vai ficar mais fácil de te ajudar. De cara o que posso te dizer é que o hibernate não está achando o centro de custo, e como está mapeado o cascateamento, ele está inserindo no banco o cc também.

Rodrigo

A

é depois de muito a apanhar cheguei a essa conclusão tbm

o problema é que estou usando o swingBean pra gerar a interface e o
bean é populado por ele,
estou tentando alterar o código do swingBean para poder setar outro bean
do geito q ta hj ele cria uma instancia de cc
e coloca la o texto do campo relativo a ele.

Criado 28 de julho de 2008
Ultima resposta 28 de jul. de 2008
Respostas 2
Participantes 2