正如标题所说,在我持久化的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个字符。
答案 0 :(得分:4)
javax.persistence.Column
用于指定数据库列的详细信息。 nullable
属性通常仅在生成表定义时使用,而不是在运行时用于验证。
javax.validation.constraints.NotNull
在运行时用于在持久化之前验证数据。违规将抛出ValidationException
的子类。
如果
,则可能发生的异常类型username
为空且不唯一
应用程序本身不会抛出异常,但如果数据库的表定义是从这些注释生成的,那么将抛出一些JPA异常。
如果
password
为空,则会抛出什么,少于字符数,然后超过25个字符。
某种形式的ValidationException
。