4

Springトランザクション管理を使用するJavaとScalaの混合プロジェクトがあります。Springアスペクトを使用して、@Transactional注釈付きメソッドでファイルを織ります。

問題は、ScalaクラスがSpringトランザクションの側面と織り交ぜられていないことです。Scalaでのトランザクションを考慮するようにSpringを構成するにはどうすればよいですか?

4

3 に答える 3

3

Spring は、Spring 管理の Bean で開始するトランザクション境界を必要とするため、これにより@TransactionalScala クラスが除外されます。

簡単な解決策は@Transactional、Spring Bean としてインスタンス化された Java クラスであるサービス ファサードを作成することのようです。これらは、Scala サービス/コア コードに委譲できます。

于 2011-01-04T05:08:59.820 に答える
2

Scala のみの解決策は、手動トランザクションを作成する Eberhard Wolff のクロージャを使用することです。使用法:

transactional() {
// do stuff in transaction
}

https://github.com/ewolff/scala-spring/blob/master/src/main/scala/de/adesso/scalaspring/tx/TransactionManagement.scala

https://github.com/ewolff/scala-spring/blob/master/src/main/scala/de/adesso/scalaspring/tx/TransactionAttributeWithRollbackRules.scala

ここにあります: http://www.slideshare.net/ewolff/scala-and-spring (スライド 41)

ライセンス: アパッチ

于 2012-08-31T22:09:46.343 に答える