读书人

插入成功了但还是报错!用hibernate

发布时间: 2012-01-12 22:11:58 作者: rapoo

插入成功了,但还是报错!用hibernate插入数据
用hibernate插入数据,明明插入成功了,但还是报错!!为啥啊???

Java code
package hibernates;import org.hibernate.Session;public class UserDao {    Session session=null;        public String saveMovie(Movie movie){        try{            session=CreateSession.getSession();            session.beginTransaction();            session.save(movie);            session.beginTransaction().commit();            return "true";        }catch(Exception e){            session.getTransaction().rollback();            return "false"+e.getLocalizedMessage();        }finally{            CreateSession.closeSession();        }    }}

我试了下,是session.beginTransaction().commit();这句话报出的错!
错误:Could not execute JDBC batch update

但是明明成功插入数据了啊!!求解求解……高手给个解!!

下面是movie表的配置文件Movie.hbm.xml:
XML code
<?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"><!--     Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping>    <class name="hibernates.Movie" table="movie" catalog="myweb">        <id name="id" type="java.lang.String">            <column name="id" length="45" />        </id>        <property name="name" type="java.lang.String">            <column name="name" length="45" />        </property>    </class></hibernate-mapping>


这个是hibernate配置文件:
XML code
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory>    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>    <property name="connection.url">jdbc:mysql://localhost:3306/myweb</property>    <property name="connection.username">root</property>    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>    <property name="connection.password"></property>    <property name="hbm2ddl.auto">true</property>    <mapping resource="hibernates/Movie.hbm.xml" /></session-factory></hibernate-configuration>


[解决办法]
把你Movie.hbm.xml文件中的catalog="myweb"这个配置属性删掉看下,可能是这个属性导致的
[解决办法]
对的,这个myweb应该是你的库名吧,catalog="myweb" 这个不要,
[解决办法]
Transaction tx = session.beginTransaction();
session.save(movie);
tx.commit();

试试看。。
[解决办法]
为什么不交给spring管理呢?
[解决办法]
id如果是主键,必须把它配置成主键
<id name="id" type="integer" column="id">
<generator class="assigned" />
</id>
------解决方案--------------------


引用
session=CreateSession.getSession();
session.beginTransaction();
.......
session.beginTransaction().commit();

[解决办法]
探讨

引用
session=CreateSession.getSession();
session.beginTransaction();
.......
session.beginTransaction().commit();


个人觉得这两句有问题,,,第一次已经session.beginTransaction();了。。第二次又是一次session.beginTransactio……

读书人网 >J2EE开发

热点推荐