Hibernate: 
    /* insert cn.jbit.bid.entity.Bidding
        */ insert 
        into
            BIDS.BIDDING
            (ITEMNAME, CONTENT, UPTOTIMES, STATE, BNUMBER) 
        values
            (?, ?, ?, ?, ?)
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:254)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1001)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:339)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at cn.jbit.bid.test.BiddingTest.main(BiddingTest.java:40)
Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:367)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:8739)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:247)
... 8 more
给为前辈们好,我是刚学习Hibernate的,我在向数据库插入一条数据的时候他就给我报这个错。我的主键是通过通过生成策略的assigned的属性。经过我的一番调试我发现在实体类中为String的属性为name的列不能添加中文 ,添加英文就可以成功的添加一条数据。所以想不出来是什么原因,希望前辈们指点!谢谢!

解决方案 »

  1.   

    Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column那个字段是Long,当然不能插字符串噜。。
      

  2.   

    不是编码问题 ,我只是写Hibernate的一个测试 ,没有在jsp页面上表现。只是一个用javabean的映射文件,来插入数据库的一条数据操作。
      

  3.   

    Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column我的实体类中没有Long类型的字段,这个异常是由:org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
    而引发的抛出的异常!我还是第一次遇到这个问题!希望前辈们 帮我解决一下这个问题。
      

  4.   

    数据库类型是varchar2(20) 编码是utf-8
    这是我创建的那张表:--创建表
    create table bidding
    (
    bNumber varchar2(100) primary key,
    itemName varchar2(100),
    content varchar2(100),
    uptoTimes Date ,
    state varchar2(20)
    );
    state 为中文的时候不行,英文就可以。
    Session session = HibernateUtil.getSession();
    Transaction ti = session.beginTransaction();
    Bidding bi2 = new Bidding();
    bi2.setBnumber("ZB20011-01-03FDS");
    bi2.setUptotimes(Date.valueOf("2008-2-23"));
    bi2.setState("招标中");
    try {
    session.save(bi2);
    ti.commit();
    } catch (HibernateException e) {
    ti.rollback();
    e.printStackTrace();
    }finally{
    session.close();
    }
      

  5.   

    Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column
    仔细核对下你插入的数据,如类型长度等
      

  6.   

    谢谢各位前辈的指点,真的非常谢谢!呵呵呵..我刚才解决了这个问题。是因为环境的问题导致的异常。我在做这个题的时候是用我同事的那台电脑做的,他安装的是Oracle10g而我电脑是Oracle11g的,刚开始我用的是Oracle10的驱动jar包后来改用Oracle11g得驱动jar包就解决了这个异常!谢谢.....