aiii galera
nao ta dando certo um mapeamento aki e to precisando de ajuda
quero mapear duas tabelas com relacionamento OneToOne usando hibernate annotations
eu tenho uma tabela cadastro de documentos e vou ter varias tabelas ligado ao cadastro
ex:
1 Tabela Nota Fiscal - 1 Tabela Emitente
1 Tabela Nota Fiscal - 1 Tabela Destinatario
tentei mapear assim:
@Entity
public class CadastroNF
{
@Id
@GeneratedValue
private long codigo;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private Emitente emi;
}
@Entity
public class Emitente
{
@Id
@GeneratedValue
private long codigo;
@Column(name="vlr", nullable=false)
private double valorNota;
//vários outros atributos
}
criei a tabela pelo proprio hibernate e ele gerou duas tabelas…até ai, tudo bem porque era isso mesmo que eu queria
mas a tabela Cadastro só saiu com o campo código, enquanto a tabela Emitente gravou certinho os dados do emitente.
sÓ QUE cadastro deveria gravar a FK do Emitente, e não apareceu a FK na tabela cadastro…
dessa forma nao consigo relacionar as duas tabelas, já que emitente tb nao vai ter nenhuma fk de cadastro.
alguem consegue dizer aonde eu errei no mapeamento??? segui a documentacao do hibernate mas deu nisso dai hehehe
Você pode fazer o mapeamento tambem na tabela Emitente
@Entity
public class Emitente
{
@Id
@GeneratedValue
private long codigo;
@Column(name="vlr", nullable=false)
private double valorNota;
@OneToOne(cascade = CascadeType.ALL)
private CadastrNF cadastro;
//vários outros atributos
}
Assim o hibernate cria as chaves estrangeiras nas duas tabelas.
deu certooo
agora o problema ta sendo na hora de fazer a consulta
olha o que to fazendo no meu backbean
List<Cadastro> lista = session.createCriteria("from CadastroNF").list();
for(Cadastro c : lista)
{
System.out.print(c.getCodigo());
System.out.print(c.getNome());
}
dá esse erro
Exception in thread "main" org.hibernate.MappingException: Unknown entity: from CadastroNF
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)
at org.hibernate.impl.SessionImpl.getOuterJoinLoadable(SessionImpl.java:1584)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1550)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at Teste.main(Teste.java:32)
to pesquisando e todos os lugares falam que h problema no mapeamento no hibernet.cfg.xml
olha como fiz
[code]<?xml version='1.0' encoding='utf-8'?>
org.postgresql.Driver
postgres
jdbc:postgresql://localhost:5432/postgres
postgres
org.hibernate.dialect.PostgreSQLDialect
[/code]
sendo que esse arquivo ta na raiz