Mysql
 sql >> база данни >  >> RDS >> Mysql

hibernate, mysql, glassfish v3 и източник на данни JTA

Изглежда, че за вашата конфигурация транзакциите, управлявани от контейнери, се използват по подразбиране. В този случай трябва да дефинирате начин за синхронизиране на транзакциите, така че постоянният слой да бъде уведомен (и може да актуализира кеша от 2-ро ниво например). Така че трябва да дефинирате manager_lookup_class свойство, както следва:

// For GlassFish:
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.SunONETransactionManagerLookup
// For WebSpere:
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.WebSphereExtendedJTATransactionLookup
// For JBoss:
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
// For OpenEJB:
hibernate.transaction.manager_lookup_class=org.apache.openejb.hibernate.TransactionManagerLookup

Също така трябва да маркирате бизнес методи, които имат достъп до слоя данни, като "транзакционни". За това трябва да ги маркирате с @javax.ejb.TransactionAttribute(REQUIRED) (вижте тук за повече информация относно тази анотация).

Имате и опция да преминете към транзакции, управлявани от bean. Можете да го направите, като кажете:

hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory

Тогава bean е отговорен за стартиране/приключване на транзакцията:

org.hibernate.Session session = ...;
org.hibernate.Transaction tx = null;
try {
    tx = session.beginTransaction();
    session.createQuery(...); // do some staff
    tx.commit();
} catch (HibernateException e)
{
    if (tx != null) {
        tx.rollback();
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - броене по месеци (включително липсващи записи)

  2. Предупреждение:mysql_fetch_array():предоставеният аргумент не е валиден MySQL резултат

  3. Защо jdbcTemplate.batchUpdate() на Spring е толкова бавен?

  4. Как да създадете парола от шест знака в MySQL 5.7

  5. Получаване на данни от падащо меню за множествен избор с PHP за вмъкване в MySQL