在java中为这些注释抛出了什么异常?

时间:2012-05-15 11:01:01

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

正如标题所说,在我持久化的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为空且不唯一时可能发生的异常类型。如果password为空,则会抛出什么,少于字符和超过25个字符。

1 个答案:

答案 0 :(得分:4)

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

假设启用并配置了验证提供程序,

javax.validation.constraints.NotNull在运行时用于在持久化之前验证数据。违规将抛出ValidationException的子类。

  

如果username为空且不唯一

,则可能发生的异常类型

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

  

如果password为空,则会抛出什么,少于字符数,然后超过25个字符。

某种形式的ValidationException