【问题标题】:what exceptions get thrown for these annotations in java?java中的这些注释会抛出什么异常?
【发布时间】:2012-05-15 11:01:00
【问题描述】:

正如标题所说,在以下这些条件下,我的持久化 java 类会引发哪些异常:

@Column(name = "USERNAME", nullable=false, unique=true)
private String username;


@Column(name = "PASSWORD")
@NotNull
@Size(min = 5, max = 25)
private String password;

使用@NotNull@Column(nullable=false) 有什么区别?

如果username 为空且不唯一,我找不到任何解释此问题的 api 文档以及可能发生的异常类型。如果password 为空,小于字符,大于 25 个字符,则会抛出什么。

【问题讨论】:

    标签: java hibernate jpa exception-handling bean-validation


    【解决方案1】:

    javax.persistence.Column用于指定数据库列的详细信息。 nullable 属性一般只在生成表定义时使用,在运行时不用于验证。

    javax.validation.constraints.NotNull 在运行时用于在持久化数据之前验证数据,假设启用并配置了验证提供程序。违规将抛出ValidationException 的子类。

    username 为 null 且不唯一时可能发生的异常类型

    应用程序本身不会抛出异常,但如果数据库的表定义是从这些注解生成的,则会抛出一些 JPA 异常。

    如果password 为 null,小于 chars 且大于 25 个字符,则会抛出什么。

    某种形式的ValidationException

    【讨论】:

    • 好的,谢谢。这是验证传递到我的持久 Java 类的数据的好方法还是有更好的方法?
    猜你喜欢
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多