Olá, tenho uma classe "Filial" que hoje tem uma chave Primária, ou seja não pode existir na mesma tabela um ID com o mesmo Valor.
Mas surgiu um empasse na aplicação que vou ter que dar um jeito para que aceite na coluna ID o mesmo Valor.
/**
* Arquivo : Filial.java
*
* @hibernate.class table="FILIAL"
*/
public class Filial
{
private int id;
private String name;
private Company company;
/**
* Construtor padrão: inicializa os objetos.
*/
public Filial()
{
this.company = new Company();
}
/**
* Retorna o id
*
* @return id
*
* @hibernate.id column="CD_FILIAL" generator-class="assigned" type="int"
*/
public int getId()
{
return this.id;
}
/**
* Seta o id
*
* @param id
*/
public void setId(int id)
{
this.id = id;
}
/**
* Retorna o nome
*
* @return nome
*
* @hibernate.property column="NM_FILIAL"
*/
public String getName()
{
return this.name;
}
/**
* Seta o nome
*
* @param nome
*/
public void setName(String name)
{
this.name = name;
}
/**
* Retorna a empresa
*
* @return empresa
*
* @hibernate.many-to-one name="company" class="business.Company" column="CD_EMPRESA"
*/
public Company getCompany()
{
return this.company;
}
/**
* Seta a empresa
*
* @param empresa
*/
public void setCompany(Company company)
{
this.company = company;
}
}
Minha ideía é utilizar uma chave composta com o CD_FILIAL, CD_EMPRESA.
Mas nunca precisei efetuar esse tipo de alteração no Hibernate, como eu crio essa Chave composta.?
Sei que posso criar outra tabela para isso onde posso guardar somente o CD_FILIAL, CD_EMPRESA, mas primeiro queria entender como que funciona a chave composta
no Hibernate, pois acho que poderei usar nesse caso.
Um problema é quando o id da filial se repete e dou um getFilial em chamando apartir de outra classe que se relaciona com a filial somente pelo ID da Filial eu recebo na log a mensagem de EXCEPTION, que existe mais de um registro e não pode ser exibido. Mas acredito se colocar essa chave composta posso resolver isso. também não sei ao certo se vou ter que alterar a chamada dos "gets" onde retorno a Filial....