java2009eye 2009-01-08 10:55
浏览 231
已采纳

Hibernate错误!!!急---

package com.text.person;

/**

  • Person POJO类
  • */ public class Person { //设置Person类的基本属性. private String id; private String name; private String password; private String email; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }

-------------------------Person.hbm.xml----------------------------------
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
















package com.text.person;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**

  • 具体操作Hibernate方法.
  • 包括:增加,删除,修改,按ID指定查询,查询全部及模糊查询.
  • */
    public class PersonOperate {

    private Session session=null;

    /**

    • 在构造方法中去实例化session对象.
    • */
      public PersonOperate()
      {

      Configuration config=new Configuration().configure();

      SessionFactory factory=config.buildSessionFactory();

      this.session=factory.openSession();
      }

    //新增
    public void insert(Person p)
    {
    Transaction tran=this.session.beginTransaction();

    this.session.save(p);
    
    tran.commit();
    

    }

}
--------------------------测试类--------------------------------
package com.text.person;

import java.util.Iterator;
import java.util.List;

public class TestPerson {

/**
 * @param args
 */
public static void main(String[] args) {
    Person p=new Person();
    p.setId("1");
    p.setName("wuqiuming");
    p.setPassword("123456");
    p.setEmail("wuqiuming@163.com");

    PersonOperate po=new PersonOperate();
    po.insert(p);

}
--------------------------错误如下----------------------------------------

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.text.person.PersonOperate.insert(PersonOperate.java:46)
at com.text.person.TestPerson.main(TestPerson.java:19)
Caused by: java.sql.BatchUpdateException: ORA-01401: inserted value too large for column

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:367)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:8738)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
... 9 more

[b]问题补充:[/b]
package com.text.person;

/**

  • Person POJO类
  • */ public class Person { //设置Person类的基本属性. private String id; private String name; private String password; private String email; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }

-------------------------Person.hbm.xml----------------------------------
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
















package com.text.person;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**

  • 具体操作Hibernate方法.
  • 包括:增加,删除,修改,按ID指定查询,查询全部及模糊查询.
  • */
    public class PersonOperate {

    private Session session=null;

    /**

    • 在构造方法中去实例化session对象.
    • */
      public PersonOperate()
      {

      Configuration config=new Configuration().configure();

      SessionFactory factory=config.buildSessionFactory();

      this.session=factory.openSession();
      }

    //新增
    public void insert(Person p)
    {
    Transaction tran=this.session.beginTransaction();

    this.session.save(p);
    
    tran.commit();
    

    }

}
--------------------------测试类--------------------------------
package com.text.person;

import java.util.Iterator;
import java.util.List;

public class TestPerson {

/**
 * @param args
 */
public static void main(String[] args) {
    Person p=new Person();
    p.setId("1");
    p.setName("wuqiuming");
    p.setPassword("123456");
    p.setEmail("wuqiuming@163.com");

    PersonOperate po=new PersonOperate();
    po.insert(p);

}
--------------------------错误如下----------------------------------------

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.text.person.PersonOperate.insert(PersonOperate.java:46)
at com.text.person.TestPerson.main(TestPerson.java:19)
Caused by: java.sql.BatchUpdateException: ORA-01401: inserted value too large for column

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:367)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:8738)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
... 9 more

数据库用的是Oracle
CREATE TABLE person
{
id varchar(32) not null primary key,
name varchar(20) not null,
password varchar(20) not null,
email varchar(30)
};

  • 写回答

2条回答 默认 最新

  • bohemia 2009-01-08 10:57
    关注

    [quote]Caused by: java.sql.BatchUpdateException: ORA-01401: inserted value too large for column [/quote]

    插入的列过大;

    [quote]




    [/quote]

    你的 PASSWORD 声明长度是2;
    但你传递了6位:)
    [quote]p.setPassword("123456"); [/quote]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥85 maple软件,solve求反函数,出现rootof怎么办?
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题