Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uruchomić natywne zapytania SQL w tej samej transakcji Hibernate?

Jeśli nie używasz transakcji zarządzanych kontenerami następnie musisz dodać również zasady transakcji:

@Stateful
@TransactionManagement(value=TransactionManagementType.CONTAINER)
@TransactionAttribute(value=REQUIRED)

Widziałem to zjawisko tylko w dwóch sytuacjach:

  • DataSource działa w trybie automatycznego zatwierdzania, dlatego każda instrukcja jest wykonywana w osobnej transakcji
  • EntityManager nie został skonfigurowany z @Transactional , ale wtedy można uruchamiać tylko zapytania, ponieważ każda operacja DML zakończyłaby się zgłoszeniem wyjątku wymaganego przez transakcję.

Przypomnijmy, że ustawiłeś następujące właściwości hibernacji:

hibernate.current_session_context_class=JTA
transaction.factory_class=org.hibernate.transaction.JTATransactionFactory
jta.UserTransaction=java:comp/UserTransaction

Gdzie ostateczna właściwość musi być ustawiona za pomocą klucza nazewnictwa JNDI UserTransaction serwera aplikacji.

Możesz również użyć:

hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup

lub jakaś inna strategia zgodnie z aktualnym serwerem aplikacji Java EE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przejść przez tablicę danych wejściowych w formularzu?

  2. Jak zaktualizować kolumnę typu danych JSON w MySQL 5.7.10?

  3. Jaka jest różnica między ifnull a coalesce w mysql?

  4. mysql szukaj segmentu nazwy tabeli

  5. Używanie pasków ukośnych po mysql_real_escape_string