Erro ao inserir novo registro org.hibernate.exception.ConstraintViolationException: could not execute statement

Pessoal, tenho uma tabela que possui umaUnique Key no campo descrição e classificação (CLASSIFICACAO_ID_SUPERIOR). Ao tentar forçar o erro cadastrando um novo registro com a mesma descrição, não consigo tratar nenhuma exception, já tentei capturar todas as exceptions que aparecem no erro e não consigo evitá-lo.

Nesta aplicação estou usando JPA, JSF, EJB, wildfly 10.0.0 e a base de dados Oracle 11g.

Peço desculpas antecipadas, pois sou novo no fórum e na linguagem.

Entidade:

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;

import org.hibernate.validator.constraints.NotBlank;


/**
 * The persistent class for the CLASSIFICACAO database table.
 * 
 */
@Entity
@NamedQuery(name="Classificacao.findAll", query="SELECT c FROM Classificacao c join fetch c.classificacao where c.classificacao.classificacaoId = 59131 order by c.descricao")
public class Classificacao implements Serializable {
	private static final long serialVersionUID = 1L;
//       
	@Id
	@SequenceGenerator(name="CLASSIFICACAO_CLASSIFICACAOID_GENERATOR", sequenceName = "SEQ_CLASSIFICACAO", allocationSize = 1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CLASSIFICACAO_CLASSIFICACAOID_GENERATOR")
	@Column(name="CLASSIFICACAO_ID")
	private long classificacaoId;

	private String ativo;
	
	private String codccusto;
	
	private BigDecimal codcoligada;
	
	@Column(name="CODIGO_EXTERNO")
	private String codigoExterno;
	
	//@NotEmpty(message="É necessário informar a descrição da classificação.")
	@NotBlank
	private String descricao;

	//bi-directional many-to-one association to Classificacao
	@ManyToOne
	@JoinColumn(name="CLASSIFICACAO_ID_SUPERIOR")
	private Classificacao classificacao;


	//bi-directional many-to-one association to Classificacao
	@OneToMany(mappedBy="classificacao")
	private List<Classificacao> classificacaos;

	public Classificacao() {
	}
	
	//getters e setters

}

DAO:

package br.com.hcancerbarretos.dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

import org.hibernate.exception.ConstraintViolationException;

import br.com.hcancerbarretos.modelo.Classificacao;

@Stateless
public class ClassificacaoDao {
	
	@PersistenceContext
	private EntityManager manager;
	
	public void salvar(Classificacao classificacao){			
		try{
			manager.merge(classificacao);
		} catch (ConstraintViolationException e) {
			e.printStackTrace();
		}
	}
	//Restante do código
	
}

Erro:

Erro.txt (61,0 KB)

Mesmo com exception ou throwable e verificando qual o tipo da mesma?

Sim, mesmo utilizando Exception ouThrowable ele não impede o erro.
Também tentei usando:

- org.hibernate.exception.ConstraintViolationException
- java.sql.SQLIntegrityConstraintViolationException
- javax.transaction.RollbackException
- javax.persistence.PersistenceException
- javax.ejb.EJBTransactionRolledbackException

E não tive sucesso.