Estou trabalhando num projeto, e estou usando JSF (RichFaces) e Hibernate, banco de dados PostgreSQL. Preciso validar para não permitir que o usuário persista registros com a mesma descrição. Por exemplo “registro” e “REGISTRO”.
Minha dúvida é: como trabalhar com case sensitive no java e hibernate? Existe algum método que eu já posso utilizar pra não permitir que o usuário insira registros com a mesma descrição, porém com letras maiusculas e minusculas…?
Agradeço qualquer resposta, pois dei uma googlada e não achei praticamente nada…
Po kra, deixa eu ver se entendi bem...
vc não quer inserir no banco registros com a coluna descrição com mesmo valor de um outro registro certo!?
Acho que a maneira mais simples é vc fazer uma consulta no banco antes de persistir o objeto
Não testei aqui o código, mas acho que seria mais ou menos isso:
publicvoidpersist(Tabelatabela){
Sessionsession=HibernateUtil.getSession().openSession();List<Tabela> tabelas = session.createQuery("from Tabela t where upper(t.descricao) = upper(:descricao)").setString("descricao", tabela.getDescricao()).list();if(tabelas.size()==0){
Transactiontx=session.beginTransaction();session.save(tabela);tx.close();}
session.close();
}
Bom, de qualquer maneira, eu uso o SQL Server aqui e aqui não é case sentitive, então nem precisaria usar o método upperCase pra consultar.
Vê se isso ae te ajuda amigão.
Abraços.
A
anderson144
Fala grande felipempantoja;
Kra depois de dar uma fuçada no google e seguir a sua idéia (fazer um método consultar antes) consegui fazer funcionar;