是因为我的pid参数没有传进去 我试了一下
直接
PurviewItemDefine pid = new PurviewItemDefine();
session.save(pid);
然后提交
也还是这个错误!也就是说pid这个实例根本没传进去。
Hibernate: insert into PURVIEW.PURVIEW_ITEM_DEFINE (PURVIEW_ITEM_DEFINE_NO, PURVIEW_ITEM_DEFINE_NAME, REMAKE, PURVIEW_ITEM_DEFINE_ID) values (?, ?, ?, ?)
net.sf.hibernate.JDBCException: Could not execute JDBC batch update

解决方案 »

  1.   

    你是不是传递进去的值的类型与你在数据库中的字段名的类型设置没有统一呀?这个不明白了!
    字段类型的统一应该是Hibernate自己解决的吗?package com.chiatai.demo.dao;import java.io.Serializable;
    import org.apache.commons.lang.builder.EqualsBuilder;
    import org.apache.commons.lang.builder.HashCodeBuilder;
    import org.apache.commons.lang.builder.ToStringBuilder;/** @author Hibernate CodeGenerator */
    public class PurviewItemDefine implements Serializable {    /** identifier field */
        private String id;    /** persistent field */
        private Integer purviewItemDefineNo;    /** nullable persistent field */
        private String purviewItemDefineName;    /** nullable persistent field */
        private String remake;    /** full constructor */
        public PurviewItemDefine(Integer purviewItemDefineNo, String purviewItemDefineName, String remake) {
            this.purviewItemDefineNo = purviewItemDefineNo;
            this.purviewItemDefineName = purviewItemDefineName;
            this.remake = remake;
        }    /** default constructor */
        public PurviewItemDefine() {
        }    /** minimal constructor */
        public PurviewItemDefine(Integer purviewItemDefineNo) {
            this.purviewItemDefineNo = purviewItemDefineNo;
        }    public String getId() {
            return this.id;
        }    public void setId(String id) {
            this.id = id;
        }    public Integer getPurviewItemDefineNo() {
            return this.purviewItemDefineNo;
        }    public void setPurviewItemDefineNo(Integer purviewItemDefineNo) {
            this.purviewItemDefineNo = purviewItemDefineNo;
        }    public String getPurviewItemDefineName() {
            return this.purviewItemDefineName;
        }    public void setPurviewItemDefineName(String purviewItemDefineName) {
            this.purviewItemDefineName = purviewItemDefineName;
        }    public String getRemake() {
            return this.remake;
        }    public void setRemake(String remake) {
            this.remake = remake;
        }    public String toString() {
            return new ToStringBuilder(this)
                .append("id", getId())
                .toString();
        }    public boolean equals(Object other) {
            if ( !(other instanceof PurviewItemDefine) ) return false;
            PurviewItemDefine castOther = (PurviewItemDefine) other;
            return new EqualsBuilder()
                .append(this.getId(), castOther.getId())
                .isEquals();
        }    public int hashCode() {
            return new HashCodeBuilder()
                .append(getId())
                .toHashCode();
        }}<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
    <hibernate-mapping>
    <class name="com.chiatai.demo.dao.PurviewItemDefine" schema="PURVIEW" table="PURVIEW_ITEM_DEFINE">
    <id column="PURVIEW_ITEM_DEFINE_ID" name="id" type="java.lang.String">
    <generator class="uuid.hex"/>
    </id>
    <property column="PURVIEW_ITEM_DEFINE_NO" length="9" name="purviewItemDefineNo" not-null="true" type="java.lang.Integer"/>
    <property column="PURVIEW_ITEM_DEFINE_NAME" length="50" name="purviewItemDefineName" type="java.lang.String"/>
    <property column="REMAKE" length="100" name="remake" type="java.lang.String"/>
    </class>
    </hibernate-mapping>这是我的配置文件
    数据库结构是
    PURVIEW_ITEM_DEFINE_ID INTEGER(9)
    PURVIEW_ITEM_DEFINE_NO INTEGER(9)
    PURVIEW_ITEM_DEFINE_NAME varchar
    REMAKE varchar
    有关系吗?
      

  2.   

    <id column="PURVIEW_ITEM_DEFINE_ID" name="id" type="java.lang.String">
    <generator class="increment"/>
    </id>
      

  3.   

    <property name="hibernate.show_sql">true</property>
      

  4.   

    回复人: inprise_lyj(只愛一點點)  
      你是更新还是修改?
    我插入一条记录,updata也试过了值一样是问号!
    郁闷一下午了!
      

  5.   

    fz8224(Fantasy) 
    rekcah_ph(陌生人)
    的方法都试了!不行啊!
    是怎么回事呢?
      

  6.   

    问个问题
    PurviewItemDefine pid = new PurviewItemDefine();
    pid.setId("6");
    pid.setPurviewItemDefineNo(6);//***********
    pid.setPurviewItemDefineName("anbasdf");
    pid.setRemake("aaaaa");
    session.save(pid);
    上面打*号的地方参数是int,但在PurviewItemDefine 里并没有看到参数类型为int的方法。
      

  7.   

    hibernate打印出来的就是带?的。
    仔细看看控制台打印出来的log,应该有binding '1' to 1这样的信息的这就是他绑定的参数