relacionamento no hibernate.
pessoal não conseguido relacionar dois objetos(tabelas) com o hibernate.
tenho duas tabelas simpes.
Cargos
campos(id_argo,nome)
Funcionario
campos(id_funcionario,nome,id_cargo)
Estou fazendo o cenario onde eu cadastro primeiro um cargo, e depois eu recupero este cargo p/ relacionar com funcionario.
Em codigo eu tenho isto para o relacionamento, consequentemente o meu Funcionario.hbm.xml
public class Funcionario {
Cargo cargo
…
/**
* @hibernate.many-to-one
* column=“id_cargo”
* class=“rodrigo.teste2.Cargo”
*/
public Cargo getCargo() {
return cargo;
}
…
}
Funcionario.hbm.xml
<?xml version="1.0"?>< hibernate-mapping >
< class
name=“rodrigo.teste2.Funcionario”
table=“funcionario”
dynamic-update=“false”
dynamic-insert=“false”
>
< id
name="id"
column="id_funcionario"
type="integer"
unsaved-value="-1"
>
<generator class="increment">
</generator>
</id>
< many-to-one
name="cargo"
class="meupacote.Cargo"
cascade="none"
outer-join="auto"
update="true"
insert="true"
access="property"
column="id_cargo"
/>
< property
name="nome"
type="string"
update="true"
insert="true"
access="property"
column="nome"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-Funcionario.xml
containing the additional properties and place it in your merge dir.
-->
< /class >
< /hibernate-mapping >
obs. Ambas as classes se encontram o mesmo no mesmo pacote.
Em teste eu tenho isto:
main() {
…
try
{
Funcionario funcionario = new Funcionario();
//carregado cargo - tudo ok
CargoDAO daoCargo = new CargoDAO();
// recupero um cargo
List list = daoCargo.getList("from Cargo as vo where vo.id = '1'");
Cargo cargo = (Cargo) list.get(0);
// AQUI ELE LANÇA A SEGUINTE EXCEÇÃO:
FuncionarioDAO dao = new FuncionarioDAO();
net.sf.hibernate.MappingException: An association from the table funcionario refers to an unmapped class: meupacote.Cargo
// AQUI ELE LANÇA A SEGUINTE EXCEÇÃO:
funcionario.setNome("FUNCIONARIO1");
funcionario.setCargo(cargo);
dao.insert(funcionario);
}
catch(Exception e)
{
e.printStackTrace();//aqui vc vai saber que xabu é esse.
}
}
obs. Lembrando que cargo eu faço todas as operações de banco.
grato amigos.