Re:Alguem sabe que erro é esse ? org.hibernate.HibernateException: More than one row with the give

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!!!