Olá Erik!
Pelo erro que você está enfrentando, parece que o problema está relacionado a uma chave composta em sua entidade Categoria
. O erro "More than one row with the given identifier was found" indica que o Hibernate encontrou mais de uma linha no banco de dados com o mesmo identificador, o que não deveria acontecer, especialmente se você estiver usando uma chave composta.
Aqui estão algumas sugestões para resolver esse problema:
Verifique a Chave Composta: Certifique-se de que a chave composta está corretamente mapeada na sua entidade Categoria
. Você deve ter uma classe anotada com @Embeddable
que representa a chave composta e, em sua entidade, usar @EmbeddedId
para referenciar essa chave.
Consistência dos Dados: Verifique se os dados no banco de dados são consistentes. É possível que existam registros duplicados para a chave composta, o que pode estar causando esse erro. Você pode executar uma consulta SQL diretamente no banco de dados para verificar se há duplicatas.
Configuração do Hibernate: Verifique se a configuração do Hibernate está correta e se não há algo que possa estar interferindo na forma como as chaves compostas estão sendo gerenciadas.
Revisão do Código: Revise o método cad_Produto
na classe Debug
para garantir que ele está manipulando corretamente as entidades e suas chaves compostas.
Como exemplo, se você tiver uma chave composta como CategoriaId
, ela deve ser algo assim:
@Embeddable
public class CategoriaId implements Serializable {
private Long idPart1;
private Long idPart2;
// getters, setters, hashCode, equals
}
E na sua entidade Categoria
:
@Entity
public class Categoria {
@EmbeddedId
private CategoriaId id;
// outros atributos e métodos
}
Espero ter ajudado e bons estudos!