Verifique se o banco de dados levanta uma exceção específica
-
24-09-2019 - |
Pergunta
usando Nibernate;
Estou tentando inserir vários valores A na tabela, que possui um índice exclusivo em algumas colunas.
Eu gostaria de saber se uma inserção específica levanta uma exceção por ter violado a restrição única.
Então, qual tipo de exceção específico devo pegar? Eu só quero pegar este em particular e deixar todos os outros subirem.
Muito obrigado!
Solução
Você precisa implementar ISQLExceptionConverter
.
Verificar Exceção personalizada usando o NHibernate ISQLEXCECIONCOVERTER e http://fabiomaulo.blogspot.com/2009/06/improving-tom-exception-management-in.html por exemplo.
Outras dicas
Receio que não haja exceção especial para isso. Você terá que capturar exceções da ADO e procurar o texto de exceção interna.
IMHO Sua abordagem não é mais apropriada. Você deve consultar o banco de dados para verificar antes da inserção se os dados violarem a restrição exclusiva. Se isso acontecer, você não insere o registro.