相关疑难解决方法(0)

如何在Spring中处理DataIntegrityViolationException?

我需要在Spring 3.0应用程序中显示自定义消息.我有一个Hibernate数据库,有几个约束.我对如何DataIntegrityViolationException以良好的方式处理有疑问.我想知道是否有一种方法可以在属性文件中使用消息集映射异常,因为它可以在约束验证中使用.我可以以任何方式自动处理它,或者我必须在每个控制器中捕获此异常吗?

java spring exception-handling spring-mvc

8
推荐指数
2
解决办法
2万
查看次数

如何指定异常约束

我有一个 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)

java postgresql spring hibernate exception

5
推荐指数
1
解决办法
731
查看次数