Boa noite pessoal, estou começando com Hibernate e estou me deparando com um problema com um relacionamento bem simples q estou fazendo para aprender mesmo.
No meu caso tenho 3 tabelas TB_EMPRESA, TB_MOEDA e TB_PARCEIRO que possuem a seguinte estrutura:
CREATE TABLE TB_EMPRESA (
CD_EMPRESA INTEGER NOT NULL,
DC_RAZAO_SOCIAL VARCHAR(60) NOT NULL,
CD_MOEDA VARCHAR(3),
PRIMARY KEY (CD_EMPRESA),
FOREIGN KEY (CD_MOEDA) REFERENCES TB_MOEDA (CD_MOEDA);
);
CREATE TABLE TB_MOEDA (
CD_MOEDA VARCHAR(3) NOT NULL,
DC_MOEDA VARCHAR(60) NOT NULL,
PRIMARY KEY (CD_MOEDA);
);
CREATE TABLE TB_PARCEIRO (
CD_EMPRESA INTEGER NOT NULL,
CD_PARCEIRO INTEGER NOT NULL,
DC_NOME_COMPLETO VARCHAR(60) NOT NULL,
DC_NOME_REDUZIDO VARCHAR(40) NOT NULL,
CD_MOEDA VARCHAR(3),
PRIMARY KEY (CD_EMPRESA, CD_PARCEIRO),
FOREIGN KEY (CD_EMPRESA) REFERENCES TB_EMPRESA (CD_EMPRESA),
FOREIGN KEY (CD_MOEDA) REFERENCES TB_MOEDA (CD_MOEDA)
);
Criei meus JavaBeans
public class Empresa implements Serializable {
private Long codigo;
private String razaoSocial;
private Moeda moeda;
// meus metodos get, set, equals e hashCode
}
public class Moeda implements Serializable {
private String codigo;
private String descricao;
// meus metodos get, set, equals e hashCode
}
public class Parceiro implements Serializable {
private ParceiroPK id;
private String nomeCompleto;
private String nomeReduzido;
private Moeda moeda;
// meus metodos get, set, equals e hashCode
}
public class ParceiroPK implements Serializable {
private Long codigo;
private Empresa empresa;
// meus metodos get, set, equals e hashCode
}
Criei meus mapeamentos
<hibernate-mapping>
<class name="br.com.fts.bean.Empresa" table="TB_EMPRESA" >
<id name="codigo" column="CD_EMPRESA" type="long">
<generator class="sequence">
<param name="sequence">GE_CD_EMPRESA</param>
</generator>
</id>
<property column="DC_RAZAO_SOCIAL" length="60" name="razaoSocial" not-null="true" type="string" lazy="false"/>
<property ><many-to-one class="br.com.fts.bean.Moeda" name="moeda" not-null="true">
<column name="CD_MOEDA" />
</many-to-one>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="br.com.fts.bean.Moeda" table="TB_MOEDA" >
<id column="CD_MOEDA" name="codigo" type="string">
<generator class="native" />
</id>
<property column="DC_MOEDA" length="60" name="descricao" not-null="true" type="string" lazy="false"/>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="br.com.fts.bean.Parceiro" table="TB_PARCEIRO">
<composite-id class="br.com.fts.bean.ParceiroPK" name="id">
<key-many-to-one class="br.com.fts.bean.Empresa" column="CD_EMPRESA" name="empresa" />
<key-property column="CD_PARCEIRO" name="codigo" type="long"/>
</composite-id>
<property column="DC_NOME_COMPLETO" length="60" name="nomeCompleto" not-null="true" type="string"/>
<property column="DC_NOME_REDUZIDO" length="40" name="nomeReduzido" not-null="true" type="string"/>
<many-to-one class="br.com.fts.bean.Moeda" name="moeda" not-null="true">
<column name="CD_MOEDA" />
</many-to-one>
</class>
</hibernate-mapping>
Bem pessoal alguém sabe me falar se oq estou fazendo está correto ? poderia me dar sugestões??