How to manage 2 DAO methods in a single transaction in Java Spring and Hibernate?

user3449772

I'm building a new dynamic website and I created 2 DAO class in Spring MVC to manage the query in 2 different tables. I need to know how can i manage 2 DAO methods in a single transaction, using Hibernate...Pratically, I create 2 DAO Java classes and related implementation class:

First DAO class (FirstDAOImpl.java):

@Transactional(readOnly = false, rollbackFor=Exception.class)
public void insertUser(User user) 
{
    //do insert an user using hibernate...
}   

Second DAO class (SecondDAOImpl.java):

@Transactional(rollbackFor=Exception.class)
public void insertUserRole(UserRole register) 
{
    //do insert user role using hibernate...
}

In my Spring controller, i need to call both DAO method in a single transaction...

Actually, I have a new transactional method for any DAO method:

@RequestMapping(value = "/new-user", method = RequestMethod.POST)
    public String insertNewUser(Model model) 
    {
        //Other code
        try
        {
            firstDAO.insertUser(myUserObject);
            secondDAO.insertUserRole(myUserRoleObject);
        }
        catch(Exception e)
        {
            logger.info("exception!");
        }
        //Other code
    }

When the method insertUserRole() to insert a new record fails, the transaction for the previous method insertUser() is executed succesfully without rollback!

How can I manage these 2 methods in a single transaction? I would keep separates these 2 operations...

Thanks! :)

Kayaman

You need to call the DAO methods from another method with @Transactional.

The transaction will then be created outside of the DAO methods, and they will use the existing transaction (due to the default propagation) instead of creating their own new ones.

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

DAO、Spring、Hibernate

分類Dev

Spring Hibernate Transaction Logging

分類Dev

Spring-Hibernate DAO命名規則?

分類Dev

DAO Hibernate Java Select All rows into a collection

分類Dev

Spring JPA transaction over multiple methods

分類Dev

Hibernate Envers Performance and Transaction Management in a Spring Application

分類Dev

Spring Boot Data Hibernate Transaction Manager

分類Dev

Spring Declarative transaction management with hibernate using @Transactional

分類Dev

DAOクラス(Spring5 + Hibernate5)のJunitテストのJava構成

分類Dev

Hibernate + Java 9 + javax.transaction.SystemException

分類Dev

How do I manage hibernate transactions in a timertask?

分類Dev

how to resolve java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException in spring

分類Dev

How to bind 2 GET methods in Spring MVC and distinguish using @RequestMapping?

分類Dev

Hibernate:CRUD Generic DAO

分類Dev

Spring Boot 2 / Kotlin / JDK9-原因:java.lang.ClassNotFoundException:javax.transaction.SystemException

分類Dev

How to concat 2 integer values into a single string in Spring MongoDB

分類Dev

DAOインターフェース:2つのエンティティーの実装(Java、Hibernate)

分類Dev

Java SE + Spring Data + Hibernate

分類Dev

Java Frameworks War:Spring and Hibernate

分類Dev

Java Spring、Hibernate Foregin Key

分類Dev

Spring Boot 2 Hibernate Search

分類Dev

Invoking proxied DAO methods from Spring stand alone client :- could not initialize proxy - no Session

分類Dev

DAOおよびサービスレイヤー(JPA / Hibernate + Spring)

分類Dev

Resteasy / Hibernate / SpringでDAOレイヤーを簡素化

分類Dev

Spring + Hibernate DAO:多対多のメソッドを取得

分類Dev

How to handle nested transaction exception in spring integration

分類Dev

how to manage a simple cart session in symfony 2?

分類Dev

Spring Transaction Hibernate @ Transactionアノテーションが@Autowiredで機能しない

分類Dev

Spring JPA Hibernate H2

Related 関連記事

  1. 1

    DAO、Spring、Hibernate

  2. 2

    Spring Hibernate Transaction Logging

  3. 3

    Spring-Hibernate DAO命名規則?

  4. 4

    DAO Hibernate Java Select All rows into a collection

  5. 5

    Spring JPA transaction over multiple methods

  6. 6

    Hibernate Envers Performance and Transaction Management in a Spring Application

  7. 7

    Spring Boot Data Hibernate Transaction Manager

  8. 8

    Spring Declarative transaction management with hibernate using @Transactional

  9. 9

    DAOクラス(Spring5 + Hibernate5)のJunitテストのJava構成

  10. 10

    Hibernate + Java 9 + javax.transaction.SystemException

  11. 11

    How do I manage hibernate transactions in a timertask?

  12. 12

    how to resolve java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException in spring

  13. 13

    How to bind 2 GET methods in Spring MVC and distinguish using @RequestMapping?

  14. 14

    Hibernate:CRUD Generic DAO

  15. 15

    Spring Boot 2 / Kotlin / JDK9-原因:java.lang.ClassNotFoundException:javax.transaction.SystemException

  16. 16

    How to concat 2 integer values into a single string in Spring MongoDB

  17. 17

    DAOインターフェース:2つのエンティティーの実装(Java、Hibernate)

  18. 18

    Java SE + Spring Data + Hibernate

  19. 19

    Java Frameworks War:Spring and Hibernate

  20. 20

    Java Spring、Hibernate Foregin Key

  21. 21

    Spring Boot 2 Hibernate Search

  22. 22

    Invoking proxied DAO methods from Spring stand alone client :- could not initialize proxy - no Session

  23. 23

    DAOおよびサービスレイヤー(JPA / Hibernate + Spring)

  24. 24

    Resteasy / Hibernate / SpringでDAOレイヤーを簡素化

  25. 25

    Spring + Hibernate DAO:多対多のメソッドを取得

  26. 26

    How to handle nested transaction exception in spring integration

  27. 27

    how to manage a simple cart session in symfony 2?

  28. 28

    Spring Transaction Hibernate @ Transactionアノテーションが@Autowiredで機能しない

  29. 29

    Spring JPA Hibernate H2

ホットタグ

アーカイブ