sql >> データベース >  >> RDS >> Mysql

同じHibernateトランザクションでネイティブSQLクエリを実行するにはどうすればよいですか?

    コンテナ管理トランザクション> 次に、トランザクションポリシーも追加する必要があります:

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

    私はこの現象を2つの状況でしか見たことがありません:

    • DataSource は自動コミットモードで実行されているため、各ステートメントは個別のトランザクションで実行されます
    • EntityManager @Transactionalで構成されていません 、ただし、DML操作ではトランザクションが必要な例外がスローされるため、クエリのみを実行できます。

    次のHibernateプロパティを設定したことを要約します。

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

    最終的なプロパティは、Application ServerUserTransactionJNDIネーミングキーで設定する必要があります。

    次を使用することもできます:

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

    または、現在のJavaEEアプリケーションサーバーに応じたその他の戦略。



    1. MySQLデータベースにファイルを挿入する方法は?

    2. LIKEを使用したMYSQLクエリで機能しない2つの単語と空白

    3. データベース接続Mysqlが欠落しており、mysql.sockが欠落しています

    4. codeigniterActiveRecordで実行前と実行なしのエコークエリ