Java org.hibernate.exception.genericjdbception

Java org.hibernate.exception.genericjdbception,java,hibernate,Java,Hibernate,我得到以下例外情况。 我正在从文件中读取内容并保存在数据库中。 ICCID值将从文件中给出。 实际上,我正在将文件内容值设置为ICCID,您能帮我找出哪里出了问题吗。您必须在hibernate配置文件中配置hbm2ddl.auto: @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="ICCID", length=100,unique=true, nullable=false) private String

我得到以下例外情况。 我正在从文件中读取内容并保存在数据库中。 ICCID值将从文件中给出。
实际上,我正在将文件内容值设置为ICCID,您能帮我找出哪里出了问题吗。

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

@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
创建
运行1次应用程序后

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

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

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

由于您已将其设置为不可为空,因此必须为其提供一些默认值,例如空字符串。您使用的是哪种数据库系统?并非所有数据库系统都同样支持@GeneratedValue注释。另外,另一个注意事项是:注释的长度为100,但create table语句的长度为255。@SSH:@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name=“ICCID”,length=100,unique=true,nullable=true)私有字符串ICCID;@Column(name=“IMSI”,length=100,unique=true,nullable=true)私有字符串IMSI;还是有同样的问题。MYSQL@mlkammer:更改长度后仍存在相同问题。
<property name="hbm2ddl.auto">update</property>