org.hibernate.exception.GenericJDBCException

时间:2015-10-29 07:52:53

标签: java hibernate

@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,你可以帮我解决我的错误。

1 个答案:

答案 0 :(得分:1)

您必须在hibernate配置文件中配置 hbm2ddl.auto

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

运行1次app后。

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

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

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