Pessoal tenho uma duvida, tenho duas classes Empresa e Moeda criei dois JavaBean:
public class Empresa implements Serializable {
private Long codigoEmpresa = null;
private String razaoSocial = null;
private String nomeFantasia = null;
private Moeda moeda = null;
// Metodos Get e Set
}
public class Moeda implements Serializable {
private Empresa empresa = null;
private String codigoMoeda = null;
private String descricaoMoeda = null;
// Metodos Get e Set
}
Agora minha duvida é na criação do mapeamento do Hibernate, como devo proceder ?
Minhas tabelas são:
TB_EMPRESA (
CD_EMPRESA INTEGER NOT NULL,
DC_RAZAO_SOCIAL VARCHAR(60) NOT NULL,
DC_NOME_FANTASIA VARCHAR(40) NOT NULL,
CD_MOEDA INTEGER,
PRIMARY KEY(CD_EMPRESA))
TB_MOEDA (
CD_EMPRESA INTEGER NOT NULL,
CD_MOEDA VARCHAR(3) NOT NULL,
DC_MOEDA VARCHAR(60) NOT NULL,
PRIMARY KEY (CD_EMPRESA, CD_MOEDA))
Na tabela TB_MOEDA tenho uma FK ligando a CD_EMPRESA.TB_MOEDA com a CD_EMPRESA.TB_EMPRESA…
Agora estou criando os arquivos de mapeamento:
XML da tabela TB_EMPRESA
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="br.com.bean.Empresa" table="TB_EMPRESA" >
<id name="codigoEmpresa" column="CD_EMPRESA" type="java.lang.Long" unsaved-value="0">
<generator class="sequence">
<param name="sequence">GE_CODIGO_EMPRESA</param>
</generator>
</id>
<property name="razaoSocial" column="DC_RAZAO_SOCIAL" type="java.lang.String" />
<property name="nomeFantasia" column="DC_NOME_FANTASIA" type="java.lang.String" />
</class>
</hibernate-mapping>
XML da tabela TB_MOEDA
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="br.com.bean.Moeda" table="TB_MOEDA" >
<composite-id name="id" class="br.com.farots.eco.bean.Moeda">
<key-many-to-one name="empresa" column="CD_EMPRESA" />
<key-many-to-one name="codigoMoeda" column="CD_MOEDA" />
</composite-id>
<property name="descricaoMoeda" column="DC_NOME_FANTASIA" type="java.lang.String" />
</class>
</hibernate-mapping>
Ja li em alguns locais sobre criar uma classe com os campos que compoem a chave… mais nao consegui entender o pq e se devo fazer isso mesmo…
valeu