我在hibernate中插入一段信息,为什么提示不能将值 NULL 插入列 'isbn',表 'books.dbo.titles';列不允许有空值。INSERT 失败。
bk.setISBN("111111");
我写了的啊
public class BooksBean implements java.io.Serializable{
private String ISBN;
private String title;
.......
package com.myweb;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration conf=new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session session=sf.openSession();
Transaction tx=null;
try{
tx=session.beginTransaction();
BooksBean bk=new BooksBean();
bk.setISBN("111111");
bk.setCopyright("1");
bk.setEditionNumber(1);
bk.setImageFile("1");
bk.setPrice(1.11);
bk.setPublisherID(1);
bk.setTitle("1");
session.save(bk);
tx.commit();
}catch(Exception e){
if(null!=tx){
tx.rollback();
}
e.printStackTrace();
}finally{
session.close();
} }}
bk.setISBN("111111");
我写了的啊
public class BooksBean implements java.io.Serializable{
private String ISBN;
private String title;
.......
package com.myweb;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration conf=new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session session=sf.openSession();
Transaction tx=null;
try{
tx=session.beginTransaction();
BooksBean bk=new BooksBean();
bk.setISBN("111111");
bk.setCopyright("1");
bk.setEditionNumber(1);
bk.setImageFile("1");
bk.setPrice(1.11);
bk.setPublisherID(1);
bk.setTitle("1");
session.save(bk);
tx.commit();
}catch(Exception e){
if(null!=tx){
tx.rollback();
}
e.printStackTrace();
}finally{
session.close();
} }}
private String ISBN;
private String title;
.......
不能将值 NULL 插入列 'isbn',表 'books.dbo.titles';列不允许有空值。INSERT 失败。
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.myweb.BooksBean" table="titles">
<id name="isbn" type="java.lang.String">
<column name="isbn"/>
<generator class="native"/>
</id>
<property name="title" type="java.lang.String">
<column name="title" length="100"/>
</property>
<property name="editionNumber" type="java.lang.Integer">
<column name="editionNumber" />
</property>
<property name="copyright" type="java.lang.String">
<column name="copyright" length="4"/>
</property>
<property name="imageFile" type="java.lang.String">
<column name="imageFile" length="20"/>
</property>
<property name="publisherID" type="java.lang.Integer">
<column name="publisherID" />
</property>
<property name="price" type="java.lang.Double">
<column name="price" />
</property>
</class></hibernate-mapping>
表里的字段名 isbn --> 实体类中的 isbn
字段名大小写无所谓, 类型要一致。还不行的话,把这个映射文件贴出来吧。
我把<generator class="native"/>
改为了
<generator class="assigned"/>
居然就好了!!
sequence -- 它可用于oracle 借助序列自增