У меня есть веб-сервис, который обрабатывает данные в базе данных mysql, используя hibernate
, в первое время клиентское приложение пыталось вставить 10 данных , и оно работало, но когда он пытался вставить 20 данных, у меня было только 19 вставленных данных и в окончательных данных у меня была эта ошибка:
org.apache.cxf.interceptor.Fault: Transaction not successfully started
Caused by: org.hibernate.TransactionException: Transaction not successfully started
Это мой код и hibernate.cfg.xml
:
public Boolean updateMigration(MigrationBean migration) {
Boolean finished = false;
try {
sessionfactory = HibernateMySqlUtil.getSessionFactory();
session = sessionfactory.openSession();
session.beginTransaction();
session.createSQLQuery(Q0004).setString("userId", migration.getUserId())
.setString("userGroup", migration.getUserGroup()).setString("coId", migration.getCoId())
.setString("rpcodeInit", migration.getRpcodeInit())
.setString("rpcodeTarget", migration.getRpcodeTarget()).setString("dueDate", migration.getDueDate())
.setString("dateStart", migration.getDateStart()).setString("dateEnd", migration.getDateEnd())
.setString("comment", migration.getMigComment()).setString("custcode", migration.getCustCode())
.setString("csid", migration.getCsId()).setString("cocode", migration.getCoCode())
.setString("desInit", migration.getDesInit()).setString("desTarget", migration.getDesTarget())
.setString("remarque", migration.getRemarque()).setString("task", migration.getTask())
.setInteger("status", migration.getStatus()).setBigInteger("orderId", migration.getOrderId())
.executeUpdate();
finished = true;
logger.debug("Mise à jour avec succès");
if (!session.getTransaction().wasCommitted())
{
session.getTransaction().commit();}
} catch (HibernateException e) {
session.getTransaction().rollback();
throw new HibernateException("Erreur Execute Query: " + e.getMessage());
} finally {
if(session.isOpen())
session.close();
}
return finished;
}
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://xx.xx.xx.xx:xx/xxx</property>
<property name="hibernate.connection.username">xxx</property>
<property name="hibernate.connection.password">xxx</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="show_sql">true</property>
</session-factory>