2016-08-23 17 views
1

DBを処理するために休止状態と春のデータを使用しています。私は以下のエラーに陥っています。私はdbでもデフォルト値を設定しようとしましたが、この問題を解決するものは何もありません。私が間違って行っている:休止状態のエラーフィールドにデフォルト値がありません

エラー:

Caused by: java.sql.SQLException: Field 'USERNAME' doesn't have a default value 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2145) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2081) 
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2066) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208) 

テーブルクエリ:

CREATE TABLE `User` (
    `USERNAME` varchar(60) NOT NULL, 
    `PASSWORD` varchar(45) NOT NULL, 
    `IS_ACTIVE` char(1) NOT NULL, 
    `NAME` varchar(100) NOT NULL, 
    `EMAIL` varchar(100) NOT NULL, 
    `PHONE` varchar(45) NOT NULL, 
    PRIMARY KEY (`USERNAME`) 

ユーザーPOJO:

@Entity 
@Table(name= "User") 
public class User implements Serializable { 
    private static final long serialVersionUID = 1L; 

    @Id 
    @Column(name = "USERNAME") 
    private String username; 

    @Column(name = "PASSWORD", nullable = false) 
    private String password; 

    @Column(name = "IS_ACTIVE", nullable = false) 
    private boolean isActive; 

    @Column(name = "NAME", nullable = false) 
    private String name; 

    @Column(name = "email", nullable = false) 
    private String email; 

    @Column(name = "phone", nullable = false) 
    private String phone; 

    @OneToOne(mappedBy = "user", cascade=CascadeType.ALL) 
    private UserRole userRole; 

} 

削除セッターと読みやすくするためのゲッター。

+0

Userオブジェクトを作成してデータベースに保持するJavaコードを提供できますか? – mateuszlo

答えて

0

"ユーザー名"はテーブル "ユーザー"のプライマリキーなので、一意の値を持つ必要があります。はnullにできません。したがって、Userエンティティを永続させる前に、フィールド "username"に適切な値を設定する必要があります。