@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,你可以帮我解决我的错误。
答案 0 :(得分:1)
您必须在hibernate配置文件中配置 hbm2ddl.auto :
<property name="hbm2ddl.auto">create</property>
运行1次app后。
并将其更改为更新,如下所示:
<property name="hbm2ddl.auto">update</property>
问题是您在表中插入了一些旧值,并且当您想要更改架构时,这些旧值没有默认值。