hibernate: транзакция не была успешно запущена - PullRequest
0 голосов
/ 05 января 2019

У меня есть веб-сервис, который обрабатывает данные в базе данных 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>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...