捕获Hibernate/JPA/Session唯一键重复异常的最佳实践

bla*_*sei 1 java hibernate exception-handling

我不确定我的标题是否足够明确.以下是我mean.I'm使用开发一个Web应用程序spring 3.0.5 + hibernate 3.6.1.RELEASEJPA annotation使用sessionFactory.The应用程序允许用户使用上申请username,emailpassword.

用户可以使用(username or email)和登录password.我试图找到一种可靠的方法来告诉我有一个独特的约束异常表示为

java.sql.BatchUpdateException: Duplicate entry 'myusername' for key 'USERNAME' 要么 org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

如果我能得到一个特定的例外,我可以通知用户他的用户名或电子邮件已经被取走.

我想到的是在检查前做一个选择,但那对我来说听起来不对.还有其他解决办法吗?什么是最佳做法?

感谢您阅读本文

dar*_*man 6

实际上,最佳做法是在创建新用户时检查具有该用户名/电子邮件地址的用户是否已存在.如果确实如此,则返回指示失败的内容,否则创建用户.

通常,您不应该依赖数据库约束来实施业务规则.