@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>
问题是您在表中插入了一些旧值,并且要更改架构时,这些旧值没有默认值。