2016-08-23 4 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

사용자 개체를 만들고 데이터베이스에 유지하는 Java 코드를 제공 할 수 있습니까? – mateuszlo

답변

0

"사용자"는 테이블 "사용자"의 기본 키이므로 고유 값이 있어야하며 은 null이 될 수 없습니다.. 따라서 사용자 엔티티를 지속하기 전에 "username"필드에 적절한 값을 설정해야합니다.