Existe alguma forma de passar isso para JPA?

Eu tenho 4 classes, CPU, Monitor, Equipamentos (engloba impressoras e tal) e Garantia, eu faço o cadastro sempre de CPU, Monitor e equipamento, seja de peças da empresa quando ela compra ou quando é alugada, sendo que quando a empresa compra um pc por exemplo, cadastramos a garantia dele, a mesma coisa se faz com monitor, e os diversos equipamentos, quando é alugado claro não fazemos isso… existe um campo que nas 3 primeiras tabelas acima é definido como boolean para dizer se é alugado ou não…, em Garantia tem um campo que eu coloco um caracere para associar C para CPU, M para monitor, e E para equipamento. pensei em usar DiscriminatorColumn… mas pede herança creio, e nesse caso não tem nada haver com herança, não sei se existe uma maneira melhor do que colocar esse campo TIPO em garantia, como ficaria em JPA as classes??

segue as tabelas resumidas

CPU

id
processador
memoria
hd

MONITOR

id
modelo
polegadas

EQUIPAMENTO

id
tipo    (se é impressora, fax, etc)
modelo
serie

GARANTIA

id
tipo (para entrar C, M, ou E)
data_compra
nota_fiscal
oc
valor

Ah, pera, agora li direito! A sua questão era fazer isto automático…

Não sei, mas você PRECISA realmente colocar este campo? Só utilizando os objetos Cpu, Monitor, Equipamento não dá?

não queria repetir o código que tem em garantia nas 3 outras tabelas, se não tiver jeito claro q vou fazer isso… não custa nada ver qual é né… estou aprendendo JPA, pensei que poderia ter uma maneira, vou esperar um pouco para ver se alguém me dá essa resposta.

Escuta, vc já tem as classes?

Se postar as suas classes fica mais fácil…

as classes são JavaBeans normais, por isso não postei

public class CPU
{
     private Integer id;
     private String processador;
     private String hd;

       getters e settters..............

}

não muda para as outras… quero transformar para JPA, de modo a seguir o que falei mais acima, se precisar de mais alguma informação, só falar!

A classe CPU não tem uma garantia associada? Você não precisa de algo assim na sua classe?

 public class CPU  
 {  
    private Integer id;  
    private String processador;  
    private String hd;  
    private Garantia garantia; 
  
    (...getters e settters...)
}  

Vc vai por anotações ou pro XML? Se preocupe primeiro com as classes, depois é fácil mapear.

Anotações…

isso tem isso essa linha, esqueci de colocar

private Garantia garantia;   

como ficaria com anotações??? de modo que eu só utiliza-se a garantia quando estivesse cadastrando um produto comprado

outro linha q esqueci em cpu é

private boolean isAlugado;

Procure por @Entity e por @OneToOne.

Tente colocar as anotações nos atributos das classes Cpu e Garantia, e poste aqui de novo se tiver uma dúvida.
Tem váaaaaaaaarios exemplos aqui no GUJ, como este.

Soh para complementar… dah uma olhada neste site: http://www.oracle.com/technology/products/ias/toplink/jpa/index.html. Vc pode gerar automaticamente estas classes atraves do netbeans ou eclipse, apenas informando as tabelas do bd q vc quer mapear… outra coisa, um erro q a maioria do pessoal comete, cpu eh referente somente ao processador e naum ao pc (memoria, hd, processador).