私の春のフォームを送信できません。私はこの例外を得ていると、なぜ分からない:ConstraintViolationException:一時的なconfirmPasswordフィールドを持つユーザーエンティティ
javax.validation.ConstraintViolationException: validation failed for classes [com.example.my.entities.User] during persist time for groups [javax.validation.groups.Default, ]
そして、ここでは私のUserエンティティです:
@Entity
@Table(name = "tbl_user")
public class User implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name = "id", nullable = false, columnDefinition = "serial")
private int id;
@NotEmpty
@Length(max = 255)
@Column(name = "username", unique = true, nullable = false, length = 255)
private String username;
@NotEmpty
@Column(name = "password", nullable = false, length = 32)
private String password;
@NotEmpty
@Transient
private String confirmPassword;
@NotEmpty
@Email
@Length(max = 255)
@Column(name = "email", unique = true, nullable = false, length = 255)
private String email;
@Length(max = 255)
@Column(name = "role", length = 255)
private String role;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "id.user", cascade = { CascadeType.REMOVE }, orphanRemoval = true)
private List<LicenseUserAlert> alerts;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getConfirmPassword()
{
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword)
{
this.confirmPassword = confirmPassword;
}
public String getEmail()
{
return email;
}
public void setEmail(String email)
{
this.email = email;
}
public String getRole()
{
return role;
}
public void setRole(String role)
{
this.role = role;
}
public List<LicenseUserAlert> getAlerts()
{
return alerts;
}
public void setAlerts(List<LicenseUserAlert> alerts)
{
this.alerts = alerts;
}
}
私が正しく形で満たされ、そのいずれかの制約違反があってはなりません。 .. confirmPasswordに問題がありますか?
例外は、具体的なデータが要件と一致しないことcompains。 (Hibernateは制約をチェックします(それを設定することができます))保存したいエンティティの具体的なデータは何ですか? – Ralph
私は、デフォルトのグループ '[javax.validation.groups.Default、]'の後ろにseperatorの印が少し心配です。それほどうまく書式化された問題ではないか、または休止状態で実際に名前のない第2のグループを検証しようとするかもしれません。 – Ralph
ところで、パスワード確認のためにhttp://stackoverflow.com/questions/1972933/cross-field-validation-with-hibernate-validator-jsr-303を見てください – Ralph