我需要在Spring 3.0应用程序中显示自定义消息.我有一个Hibernate数据库,有几个约束.我对如何DataIntegrityViolationException
以良好的方式处理有疑问.我想知道是否有一种方法可以在属性文件中使用消息集映射异常,因为它可以在约束验证中使用.我可以以任何方式自动处理它,或者我必须在每个控制器中捕获此异常吗?
我有一个 Spring 应用程序,并向我的用户实体添加了用户名和电子邮件的唯一约束。因此,用户无法使用相同的用户名或电子邮件创建多个帐户。当有人使用已存在的用户名创建新用户时,我的应用程序会抛出 ConstraintViolationException
我的异常详细信息:
org.postgresql.util.PSQLException:错误:重复的键值违反唯一约束“ukdfui7gxngrgwn9ewee3ogtgym”详细信息:键(用户名)=(dev123)已存在。
我的用户实体:
@Table(name = "usr", uniqueConstraints={
@UniqueConstraint(columnNames ={"username"}),
@UniqueConstraint(columnNames={"email"})})
public class User {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="usr_seq")
@SequenceGenerator(name = "usr_seq", sequenceName = "usr_seq", initialValue = 1, allocationSize=1)
@Column(name="id")
private Long id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "role")
private Role role;
@Column(name = "email")
private String email;
@Column(name = "status")
private Status status;
// …
Run Code Online (Sandbox Code Playgroud)