2016-08-23 2 views
1

Я использую данные гибернации и весны для обработки db. Я становлюсь ниже ошибки. Я попытался установить значение по умолчанию в db, но ничего не решает эту проблему. то, что я сделал неправильно:Поле ошибки hibernate не имеет значения по умолчанию

ошибка:

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, в котором вы создаете объект User и сохраняете его в базе данных? – mateuszlo

ответ

0

«Username» является первичным ключом в таблице «Пользователь», поэтому он должен иметь уникальное значение, а не может быть пустым. Таким образом, перед сохранением объекта User вы должны установить правильное значение для поля «имя пользователя».

Смежные вопросы