【发布时间】:2011-06-30 12:04:57
【问题描述】:
一段时间以来,我一直在为这个错误摸不着头脑,但无法解决。我一直在使用 Hibernate 3 来持久化 User 实体。但是当我尝试这样做时,我得到 java.sql.SQLException: Field 'passwordConfirmation' doesn't have a default value 错误。
以下是我的 User 实体: User.java
@Entity
public class User implements Serializable {
private Long id;
private String email;
private String password;
private String passwordConfirmation;
private String captcha;
@Id @GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@NotEmpty
@Email
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@NotEmpty
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@NotEmpty
@Transient
public String getPasswordConfirmation() {
return passwordConfirmation;
}
public void setPasswordConfirmation(String passwordConfirmation) {
this.passwordConfirmation = passwordConfirmation;
}
}
有人可以帮我理解为什么会出现这个错误吗?
【问题讨论】:
-
Oracle 告诉 您没有为
passwordConfirmation字段提供值。您如何/在哪里填充User对象? -
@Nivas:我使用 spring mvc 3 代表表单,然后填写表单,但是当我提交表单时,出现此错误。
-
我不知道 Spring MVC。但问题是当数据被持久化到数据库时,passwordConfirmation 字段没有被填充。你能试着环顾一下应该更新但不是...的地方
-
@Nivas:我的数据库中没有
passwordConfirmation的任何列,当我提交表单时,我看到passwordConfirmation的值填充在用于验证相等性的模型中password和passwordConfirmation字段。您的意思是更新passwordConfirmation字段吗?