Tenho duas tabelas tabfun(CODFUN Number PK, …) e tabsal(CODFUN Number PK, SALARIO Number)
Estou tendando persistir dados nas tabelas acima, porém não estou conseguindo one-to-one. Quando tento persistir apenas Funcionário, tenho exito.
Um Funcionário tem um Salario
@javax.persistence.Entity
@Table(name=“TABFUN”)
public class Funcionario implements Serializable
{
@Id @javax.annotation.Generated(value={“assign”})
int codFun; //código do funcionário
@Column(name="CODDEP")
int codDep; //código do departamento
@Column(name="NOMEFUN")
String nomeFun; //nome do funcionárion
@Column(name="RG")
int rg; //rg do funcionário
@OneToOne
Salario salario;
//getters e setters
}
@javax.persistence.Entity
@Table(name=“TABSAL”)
public class Salario implements Serializable {
@Id @javax.annotation.Generated(value={"assign"})
int codFun; //código do funcionário
@Column(name="SALARIO")
double salario;
//getters e setters
}
select salario_.codFun, salario_.SALARIO as SALARIO2_ from TABSAL salario_ where salario_.codFun=?
Hibernate: insert into TABFUN (CODDEP, NOMEFUN, RG, salario_codFun, codFun) values (?, ?, ?, ?, ?)
Exception in thread “main” br.com.hibernate.DataAccessLayerException: org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
java.sql.BatchUpdateException: ORA-00904: “SALARIO_CODFUN”: identificador inválido
…
Desde já obrigado
:?:
