本文介绍了在回调事件上执行自动Bean验证时违反了Bean验证约束:'prePersist'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想存储birthdate
,所以我在MySQL中选择了date
,当我在数据库中创建实体时,结果是这样的:
I would like to store birthdate
so I chose date
at MySQL, when I create my entities based in my database, it turns out like this:
import java.util.Date;
// ..code
@NotNull(message="fill you birthdate")
@Temporal(TemporalType.DATE)
private Date birthdate;
但是当我尝试坚持时,它给了我这个错误:
But when I try to persist it gives me this error:
我在这里做错了什么?我在读来自Google的有关定义时区的文章,我来自巴西,该怎么办?
What am I doing wrong here ?I was reading something about define time zone in Google, I'm from Brazil, how should I do that ?
编辑
package entity;
import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Email;
import java.util.Date;
import java.util.List;
/**
* The persistent class for the user database table.
*
*/
@Entity
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Temporal(TemporalType.DATE)
private Date birthdate;
@NotNull(message="informe seu e-mail")
@Email(message="e-mail inválido")
private String email;
@NotNull(message="informe seu gênero")
private String gender;
private String image;
@NotNull(message="informe seu nome completo")
private String name;
@Size(min=6,max=16, message="senha com no mínimo: 6 dígitos e no máximo 16 dígitos")
@NotNull(message="informe sua senha")
private String password;
//bi-directional many-to-one association to Document
@OneToMany(mappedBy="user")
private List<Document> documents;
//bi-directional many-to-one association to QuestionQuery
@OneToMany(mappedBy="user")
private List<QuestionQuery> questionQueries;
//bi-directional many-to-one association to Team
@OneToMany(mappedBy="user")
private List<Team> teams;
public User() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getBirthdate() {
return this.birthdate;
}
public void setBirthdate(Date birthdate) {
this.birthdate = birthdate;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return this.gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getImage() {
return this.image;
}
public void setImage(String image) {
this.image = image;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public List<Document> getDocuments() {
return this.documents;
}
public void setDocuments(List<Document> documents) {
this.documents = documents;
}
public List<QuestionQuery> getQuestionQueries() {
return this.questionQueries;
}
public void setQuestionQueries(List<QuestionQuery> questionQueries) {
this.questionQueries = questionQueries;
}
public List<Team> getTeams() {
return this.teams;
}
public void setTeams(List<Team> teams) {
this.teams = teams;
}
public void print() {
System.out.println("User [id=" + id + ", birthdate=" + birthdate + ", email="
+ email + ", gender=" + gender + ", image=" + image + ", name="
+ name + ", password=" + password + "]");
}
}
推荐答案
我要解决的问题是反转@Size
和@NotNull
What I did to solve my problem was to invert the order @Size
and @NotNull
之前:
@Size(min=6,max=16, message="senha com no mínimo: 6 dígitos e no máximo 16 dígitos")
@NotNull(message="informe sua senha")
private String password;
之后:
@NotNull(message="informe sua senha")
@Size(min=6,max=16, message="senha com no mínimo: 6 dígitos e no máximo 16 dígitos")
private String password;
我不知道为什么这个顺序如此重要,但确实如此=]谢谢大家!
I don't know why this order matter this much, but it does =]Thank you everyone!
这篇关于在回调事件上执行自动Bean验证时违反了Bean验证约束:'prePersist'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!