2011-06-30 27 views
1

私はこのエラーで私の頭を傷つけていましたが、今はそれを解決できません。私は持続するためにHibernate 3を使用していますユーザーエンティティ。しかし、私はjava.sql.SQLExceptionを取得しています:フィールド 'passwordConfirmation'は、デフォルト値を持っていない私はそれをしようとするとエラーが発生します。 User.javajava.sql.SQLException: 'passwordConfirmation'フィールドにデフォルト値がありません

@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; 
    } 

} 

は、誰かが私には、なぜ私はこのエラーを取得していますことを理解するのに役立つだろう:私のユーザーエンティティ

続いているのですか?

+0

あなたは 'passwordConfirmation'フィールドの値を指定していません。どのように/あなたは 'User'オブジェクトを設定していますか? – Nivas

+0

@Nivas:私はspring mvc 3を使ってフォームを表現していますが、フォームに記入しますが、フォームを送信するとこのエラーが発生します。 – skip

+0

私はSpring MVCを認識していません。しかし、問題はpasswordConfirmationフィールドがデータがデータベースに永続化されても入力されないということです。これは更新されるはずの場所を見てみることができますか? – Nivas

答えて

2

passwordConfirmationプロパティは@Transientとマークされますが、エラーはそのフィールドの列がデータベーススキーマに存在することを示します。

データベーススキーマがHibenrateによって自動的に生成された場合は、おそらく@Transientアノテーションを追加する前に完了していたと考えられます。その場合は、スキーマを再生成する必要があります。

+0

はい、hibernateを使ってスキーマを作成しましたが、スキーマを削除して再作成しても同じ結果が得られました。 – skip

+0

@skip: '@ Transient'は' javax.persistence.Transient'ですか? – axtavt

+0

私はちょっと疑っていましたが、はい、そのjavax.persistence.Transientのみです。 – skip

0

私は誤って、私がHibernateを使用して生成していたものとは異なるスキーマを使用していました。両方のスキーマにUserエンティティ内にpasswordConfirmationフィールドがあるので、混乱しました。

私はそれを今働いている。ありがとう:)

+0

axtavtの答えを正しいとマークして、彼の答えを読んだ人が瞬時に問題を解決したことを知ってください。どうも – jule64

関連する問題