Spring + Hibernateを使用して更新する

user3062513

Hibernate + Springを使用してトランザクションを実行したい。DBからデータを取得してパラメーターを更新し、それを永続化したい。Hibernateを初めて使用する場合、誰かがコードを評価して、同じものを実装するための最良のアプローチを提案してくれる。コードスニペットは次のとおりです。

@Repository
public class WalletDaoImpl implements WalletDao {

    @Autowired
    private SessionFactory sessionFactory;


    @Override
    public boolean creditWallet(double amount, final String customerId) {
        Session session = this.sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        Criteria cr = session.createCriteria(Wallet.class);
        cr.add(Restrictions.eq("customerId", customerId));

        Wallet walletInfo = (Wallet) cr.uniqueResult();
        tx.commit();

        final double newbalaance = walletInfo.getAmount() + amount;
        walletInfo.setAmount(newbalaance);

        Transaction tx2 = session.beginTransaction();
        session.update(walletInfo);
        tx2.commit();
        session.close();
        return true;

    }
}

前もって感謝します。

イミディエイトエンジェル

トランザクション管理をSpringに任せるのが最善のアプローチです。Springの@Transactionalアノテーションを使用し、トランザクションアノテーションが有効になるようにSpringを構成する必要があります

だから、あなたのコードに戻って...私はこのようなことをします:

@Repository
public class WalletDaoImpl implements WalletDao {

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public boolean creditWallet(double amount, final String customerId) throws Exception
    {
        Session session = this.sessionFactory.getCurrentSession();
         Criteria cr = session.createCriteria(Wallet.class);
        cr.add(Restrictions.eq("customerId", customerId));

        Wallet walletInfo = (Wallet) cr.uniqueResult();
        final double newbalaance = walletInfo.getAmount() + amount;
        walletInfo.setAmount(newbalaance);
        session.update(walletInfo);
        return true;

    }
}

@Service
public class WalletServiceImpl implements WalletService
{
    @Autowired
    private WalletDao dao;
    @Override
    @Transactional
    public boolean updateWallet(double amount, final String customerId) throws Exception
    {
        return dao.creditWallet(amount, customerId);

    }
}

より深い説明はここにあります:Springトランザクション管理

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

hibernate + Springを使用して更新クエリを作成する方法

分類Dev

JNDIを使用して(Springで)hibernateの方言を構成する

分類Dev

Springを使用してHibernate Interceptor BeanにEntityManagerを注入する方法は?

分類Dev

Hibernate、Spring Boot、JavaFXを使用してJARを生成する

分類Dev

AngularJS、Spring、Hibernateを使用して部屋の予約を保存する

分類Dev

Hibernate、Spring、JDBCを使用してSSL証明書を構成する

分類Dev

JNDIとHibernateを使用してSpringを構成する

分類Dev

Springで@Queryを使用してテーブルを更新する

分類Dev

Spring Boot + Hibernate + MySqlを使用してMVCアプリを実行する

分類Dev

SpringバッチとHibernateを使用して@JoinColumnから値を取得する方法

分類Dev

リポジトリでSpring Boot JPA / Hibernateを使用して内部結合する方法

分類Dev

Hibernate / Spring Bootを使用してJSONファイルをJSONデータ型としてmysqlに保存する方法は?

分類Dev

Spring Data JPAを使用して単一のフィールドを更新する

分類Dev

Spring Data JPAクエリを使用してPostgreSQLのJSONB列を更新する方法

分類Dev

Spring Data RestとMongoDBを使用して特定のフィールドを更新する

分類Dev

Spring Bootを使用して定期的にデータベースの値を更新する

分類Dev

Spring Bootを使用してデータベースのデータを更新する

分類Dev

Spring MVCを使用して現在のユーザーデータを更新する方法

分類Dev

MongoDB Spring QueryUpdateを使用して配列内の要素を更新する方法

分類Dev

MongoDB Spring QueryUpdateを使用して配列内の要素を更新する方法

分類Dev

Springデータを使用して部分更新を実行する方法mongoDB(MongoOperations)

分類Dev

Springを使用してすべてのHibernateキャッシュ(ehcache)をクリアする方法は?

分類Dev

Hibernate MySQL Maven Spring MVCを使用してデータベースからすべての行を表示する方法

分類Dev

spring-bootとhibernateを使用して、stackoverflow例外を解決するにはどうすればよいですか?

分類Dev

Hibernate(Spring)を使用して外部キー値に基づいてテーブルから行を選択する方法

分類Dev

JSF + Spring + HibernateでDTOを使用する方法

分類Dev

SpringとHibernateを使用してDBからデータを取得し、jspで印刷する方法は?

分類Dev

Hibernate / Spring Data JPAを使用して楽観的ロックを操作する一般的な方法はありますか?

分類Dev

Spring hibernateでorderby、limitを使用してレコードを削除すると、InvalidDataAccessResourceUsageExceptionがスローされます

Related 関連記事

  1. 1

    hibernate + Springを使用して更新クエリを作成する方法

  2. 2

    JNDIを使用して(Springで)hibernateの方言を構成する

  3. 3

    Springを使用してHibernate Interceptor BeanにEntityManagerを注入する方法は?

  4. 4

    Hibernate、Spring Boot、JavaFXを使用してJARを生成する

  5. 5

    AngularJS、Spring、Hibernateを使用して部屋の予約を保存する

  6. 6

    Hibernate、Spring、JDBCを使用してSSL証明書を構成する

  7. 7

    JNDIとHibernateを使用してSpringを構成する

  8. 8

    Springで@Queryを使用してテーブルを更新する

  9. 9

    Spring Boot + Hibernate + MySqlを使用してMVCアプリを実行する

  10. 10

    SpringバッチとHibernateを使用して@JoinColumnから値を取得する方法

  11. 11

    リポジトリでSpring Boot JPA / Hibernateを使用して内部結合する方法

  12. 12

    Hibernate / Spring Bootを使用してJSONファイルをJSONデータ型としてmysqlに保存する方法は?

  13. 13

    Spring Data JPAを使用して単一のフィールドを更新する

  14. 14

    Spring Data JPAクエリを使用してPostgreSQLのJSONB列を更新する方法

  15. 15

    Spring Data RestとMongoDBを使用して特定のフィールドを更新する

  16. 16

    Spring Bootを使用して定期的にデータベースの値を更新する

  17. 17

    Spring Bootを使用してデータベースのデータを更新する

  18. 18

    Spring MVCを使用して現在のユーザーデータを更新する方法

  19. 19

    MongoDB Spring QueryUpdateを使用して配列内の要素を更新する方法

  20. 20

    MongoDB Spring QueryUpdateを使用して配列内の要素を更新する方法

  21. 21

    Springデータを使用して部分更新を実行する方法mongoDB(MongoOperations)

  22. 22

    Springを使用してすべてのHibernateキャッシュ(ehcache)をクリアする方法は?

  23. 23

    Hibernate MySQL Maven Spring MVCを使用してデータベースからすべての行を表示する方法

  24. 24

    spring-bootとhibernateを使用して、stackoverflow例外を解決するにはどうすればよいですか?

  25. 25

    Hibernate(Spring)を使用して外部キー値に基づいてテーブルから行を選択する方法

  26. 26

    JSF + Spring + HibernateでDTOを使用する方法

  27. 27

    SpringとHibernateを使用してDBからデータを取得し、jspで印刷する方法は?

  28. 28

    Hibernate / Spring Data JPAを使用して楽観的ロックを操作する一般的な方法はありますか?

  29. 29

    Spring hibernateでorderby、limitを使用してレコードを削除すると、InvalidDataAccessResourceUsageExceptionがスローされます

ホットタグ

アーカイブ