1

正如标题所说,在以下这些条件下,我的持久化 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)

我找不到任何解释这一点的 api 文档以及如果username为 null 且不是唯一的可能发生的异常类型。如果password为空,则抛出的内容少于字符,多于 25 个字符。

4

1 回答 1

4

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

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

username如果为 null 且不唯一,则可能发生的异常类型

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

如果password为空,则抛出的内容少于字符,多于 25 个字符。

ValidationException某种形式的A。

于 2012-05-15T11:15:25.040 回答