Problema com validação de campo unique

Bom dia, pessoal.
Estou com um problema que era pra ser simples, pelo menos pra mim.
É o seguinte: tenho um campo anotado como unique:

como fazer para que quando um usuário tentar infringir “unique” possa passar uma mensagem na tela?

	@Column(name = "nr_decreto", nullable = false, unique = true)
	private BigInteger numero;

Eu não sei qual a exceção lançada, mas eu faria o seguinte,

tentaria gravar um valor repetido, e veria como isso é tratado e qual exceção é lançada, então a trataria.

EDIT: Dando uma lida, vi que aparentemente esse atributo da anotação só serve para quando você quer criar suas tabelas a partir das suas Entities, não creio que será usado para algum tipo de validação.

Fonte: https://community.jboss.org/thread/183114

Passa uma exceção padrão do Hibernate, mas a intenção era antes de persistir no banco, o usuário não obtivesse acesso à mensagem do hibernate, porém uma mensagem através do Faces Context.

mas aí que ta… seria algo assim:catch(ExcecaoQueEuQuero e){ FacesContext.getCurrentInstance().addMessage("Sua Mensagem Aqui"); } entendeu? você não vai mostrar a mensagem da exceção do hibernate

Não lembro direito os parâmetros necessários pro método addMessage(), mas a idéia básica que eu quero passar é essa.

o.k.
vou tentar, isso deve ficar no ManagedBean?

Isso, mas aí se você encapsula suas exceções em uma camada de negócio, tem que se atentar para qual exceção tratar.