Galera,estou usando o hibernate em uma aplicação e tentando criar um relacionamento pai-filho 1-1 entre Usuaria(o pai) e RegistroGeralUsuaria(o filho);
Tenho o seguinte esquema relacional da aplicação:
Tabelas:
Usuaria
id;
RegistroGeralUsuaria
id;
numero;
OrgaoExpedidorRG_id;
Usuaria_id;
OrgaoExpedidorRG
id;
Dessa forma,criei os seguintes mapeamentos
@Embeddable
public class RegistroGeralUsuaria implements Serializable{
private Usuaria usuaria;
…
@Parent
public Usuaria getUsuaria(){
return this.usuaria;
}
…
}
public class Usuaria implements Serializable{
private RegistroGeralUsuaria registroGeralUsuaria;
@Embedded
@JoinTable(name=“RegistroGeralUsuaria”, uniqueConstraints=@UniqueConstraint(columnNames={“OrgaoExpedidorRG”, “numero”}),
joinColumns=@JoinColumn(name=“Usuaria_id”, nullable=false)
)
public RegistroGeralUsuaria getRegistroGeralUsuaria(){
return this.registroGeralUsuaria;
}
No entanto o Hibernate não reconhece que a tabela que contem os campo número e orgaoExpedidorRG é a tabela RegistroGeralUsuaria;
A SQL gerada é a seguinte:
insert into Usuaria (CPF, numero, OrgaoExpedidorRG_id, dataDeNascimento, nome) values (?, ?, ?, ?, ?);
O que,obviamente,causa um erro.
Sei que para resolver o problema é só relacionar OrgaoExpedidorRG diretamente com a Usuaria,e descolar o número e o OrgaoExpedidorRG para a tabela,no entanto,não quero fazer isso.
Será que o JPA ou o hibernate não permitam que eu faça um mapeamento pai-filho deste tipo?
Já tirei o embedded do getRegistroUsuaria() mas o resultado é o mesmo.
Agradeço desde já a ajuda.