@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ICCID", length=100,unique=true, nullable=false)
private String ICCID;
.....

create table DUMMY_DATA(
    ICCID VARCHAR(255) NOT NULL ,
   IMSI  VARCHAR(255) NOT NULL,
   PRIMARY KEY (ICCID)
);

2015-10-29 13:13:09,883  WARN [SqlExceptionHelper] (SqlExceptionHelper.java:145) - SQL Error: 1364, SQLState: HY000
2015-10-29 13:13:09,883 ERROR [SqlExceptionHelper] (SqlExceptionHelper.java:147) - Field 'ICCID' doesn't have a default value
Oct 29, 2015 1:13:09 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/globeconnect] threw exception [Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement] with root cause
java.sql.SQLException: Field 'ICCID' doesn't have a default value


我收到以下异常。
我正在从文件中读取内容并保存在数据库中。
ICCID值将从文件中给出。
实际上,我正在将文件内容值设置为ICCID,能否帮助我解决问题所在。

最佳答案

您必须在休眠配置文件中配置hbm2ddl.auto:

<property name="hbm2ddl.auto">create</property>


运行1次后的应用程序。

并将其更改为update,如下所示:

<property name="hbm2ddl.auto">update</property>


问题是您在表中插入了一些旧值,并且要更改架构时,这些旧值没有默认值。

07-24 13:58