2

注釈で注釈が付けられたメソッドがいくつかあり@Transactionalます。このメソッドは、春に生成されたプロキシを介して呼び出されませんが、そのプロキシを使用せずに何らかの方法でトランザクションの作成を強制する必要があります。

実装することは可能ですか?

4

1 に答える 1

2

TransactionTemplate提供されたコード ブロック/コールバックでトランザクションを手動で開始するために使用できます。

final TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);

transactionTemplate.execute(new TransactionCallback<String>()
{
    @Override
    public String doInTransaction(TransactionStatus status)
    {
        //...
        return "Some result";
    }
});

または、結果が必要ない場合:

transactionTemplate.execute(new TransactionCallbackWithoutResult()
{
    @Override
    protected void doInTransactionWithoutResult(TransactionStatus status)
    {
        //...
    }
});

もちろんTransactionTemplate、Spring Bean として定義して直接注入することもできます。それ以外の場合は、必要なときにいつでも作成できますが、トランザクション マネージャーを挿入する必要があります。

@Resource
private PlatformTransactionManager transactionManager;
于 2012-05-31T14:16:58.100 に答える