Hibernate 唯一约束异常捕获
Hibernate unique constraint exception catch
我在某些字段中有一个具有唯一约束的简单注册,我想在 .jsp
页面中处理带有友好消息的唯一异常,但我不知道我应该在 catch 块中涉及哪个异常。当我尝试使用重复字段注册用户时,我在控制台上看到:
Dec 13, 2017 12:35:10 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
WARN: SQL Error: 1062, SQLState: 23000
Dec 13, 2017 12:35:10 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
ERROR: Duplicate entry 'admin1' for key 'username'
Dec 13, 2017 12:43:37 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
WARN: SQL Error: 1062, SQLState: 23000
Dec 13, 2017 12:43:37 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
ERROR: Duplicate entry 'edek' for key 'PRIMARY'
处理:
try
{
userService.registerUser(userAccount);
}
catch(?)
{
// something like :
return new ModelAndView("register","uniqueErrorMessage",message);
}
如果 table 中只有一个主键,那么在异常块中,您可以在异常消息和 [=18 中搜索错误代码 1062
(插入重复行时抛出的 1062 代码) =] 用户已经存在的相关消息.. 等等
或
您可以在插入前执行 select count(*)...where username='user entered this'
,如果您看到结果计数 >= 1,则 return 相关消息,而不是处理
插入时出现异常。
我在某些字段中有一个具有唯一约束的简单注册,我想在 .jsp
页面中处理带有友好消息的唯一异常,但我不知道我应该在 catch 块中涉及哪个异常。当我尝试使用重复字段注册用户时,我在控制台上看到:
Dec 13, 2017 12:35:10 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
WARN: SQL Error: 1062, SQLState: 23000
Dec 13, 2017 12:35:10 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
ERROR: Duplicate entry 'admin1' for key 'username'
Dec 13, 2017 12:43:37 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
WARN: SQL Error: 1062, SQLState: 23000
Dec 13, 2017 12:43:37 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logExceptions
ERROR: Duplicate entry 'edek' for key 'PRIMARY'
处理:
try
{
userService.registerUser(userAccount);
}
catch(?)
{
// something like :
return new ModelAndView("register","uniqueErrorMessage",message);
}
如果 table 中只有一个主键,那么在异常块中,您可以在异常消息和 [=18 中搜索错误代码 1062
(插入重复行时抛出的 1062 代码) =] 用户已经存在的相关消息.. 等等
或
您可以在插入前执行 select count(*)...where username='user entered this'
,如果您看到结果计数 >= 1,则 return 相关消息,而不是处理
插入时出现异常。