Tem query com erro. Qual query está sendo executada?
Veja se o seu relacionamento OneToOne o atributo marcado com @Id se não tem mais de 1 na tabela.
[quote=java_coffe]
O atributo (id) da PessoaFisica deve aparecer varias vezes na ControResponsavel. Interessante que quando rodo a primeira vez ele insere direitinho, mas quando vou tentar pela segunda vez o insert aparece esse erro!!![/quote]
Para mim, quando um relacionamento é 1 : 1, na tabela A existe um único registro que relaciona um registro único na tabela B e, na tabela B, apenas um único registro que referencia um registro único na tabela A.
Quando a PK de um registro da tabela A se repete várias vezes na tabela B (ou seja, está sendo referenciado por vários registros), temos um relacionamento um para muitos (1 : N).
@Entity
@PrimaryKeyJoinColumn(name="id")
@Table(name="tbl_pessoa_fisica", schema = "passaporteplus")
public class PessoaFisica extends Pessoa implements Serializable {
private static final long serialVersionUID = 7388623849152832337L;
@OneToOne(mappedBy="pessoaFisica",optional=false)
private ControleResposavel controleResposavel ;
@Entity
@Table(name="tbl_controle_responsavel", schema = "passaporteplus")
public class ControleResposavel implements Serializable {
private static final long serialVersionUID = 3474465107171514961L;
public ControleResposavel(){}
public ControleResposavel(PessoaFisica pessoaFisica,PessoaJuridica pessoaJuridica, TipoPapel papel, boolean isAtivo, Date dataIniciExercicio) {
this.pessoaFisica = pessoaFisica;
this.pessoaJuridica = pessoaJuridica;
this.papel = papel;
this.isAtivo = isAtivo;
this.dataIniciExercicio = dataIniciExercicio;
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer id ;
@OneToOne
private PessoaFisica pessoaFisica ;
Gente esta dando esse erro : javax.persistence.PersistenceException: org.hibernate.HibernateException: More than one row with the given identifier was found: 5, for class: br.gov.tce.am.passaporte.model.ControleResposavel
@NamedQueries( value = {
@NamedQuery(name = PessoaFisicaDAO.VERIFICAR_SE_EXISTE_CPF_CADASTRADO , query = "select count( pf.cpf ) from PessoaFisica pf where pf.cpf = :pCpf"),
@NamedQuery(name = PessoaFisicaDAO.BUSCAR_PESSOA_FISICA_PELO_CPF , query = "from PessoaFisica pf where pf.cpf = :pCPF")
})
Ele executa a segunda NamedQuery e depois aparece esse problema.
O atributo (id) da PessoaFisica deve aparecer varias vezes na ControResponsavel. Interessante que quando rodo a primeira vez ele insere direitinho, mas quando vou tentar pela segunda vez o insert aparece esse erro!!!