Ola pessoal!!!
Estou com uma dúvida na utilização do Hibernate, é o seguinte :
Tenho 2 classes : Campo e FixoEmpresa, onde FixoEmpresa herda Campo
A classe campo esta da seguinte forma :
@Inheritance(strategy=InheritanceType.JOINED)
@Entity
public abstract class Campo{
@Id @GeneratedValue
protected Integer id;
private String nome;
@Column(unique=true)
private String abreviacao;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getAbriviacao() {
return abreviacao;
}
public void setAbriviacao(String abreviacao) {
this.abreviacao = abreviacao;
}
}
E a classe FixoEmpresa esta assim :
@Entity
@PrimaryKeyJoinColumn(name="campo_id")
public class FixoEmpresa extends Campo {
private Integer empresa;
private Double valor;
public Double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public Integer getEmpresa() {
return empresa;
}
public void setEmpresa(Integer empresa) {
this.empresa = empresa;
}
}
Quando eu instanio um objeto FixoFuncionario e salvo tudo ocorre corretamente, ele cria duas tabelas salvando o id, nome e a abreviacao em uma tabela e o id_campo, empresa e valor na outra tabela, porem quando vou salvar outro objeto com a mesma abreviacao mas com outra empresa e outro valor ele da erro!
E se eu tiro o UNIQUE ele gera um novo registro nas duas tabelas, mas eu gostaria que gerasse apenas um novo registro na tabela onde salva o id_campo, empresa e valor…
Acredito que tenha que usar o @ManyToOne mas nao estou conseguindo utilizar, alguem poderia me dar um help.
Desde já agradeço qualquer ajuda!