私はMySQLデータベースに接続する非常に小さなアプリケーションに取り組んでいます。
テーブルレコードを作成しようとしていますが、「トランザクションが進行中ではありません」。
私はすべての正しいものを用意しています:
- サービスインターフェイスMyServiceとその実装MyServiceImpl
- @Serviceでサービスimplに注釈を付けました
- コントローラでは、フィールド@AutowiredMyServiceのインターフェイス名を使用しました
- もともとrooによって生成されたので、正しいトランザクション構成を持っています
- MyServiceImplが実装するパブリックメソッドMyService.create(...)があります
だが、
コントローラのmyServiceフィールドをリモートデバッグして検査すると、com.some.package.services.MyService @ 12345のようなもの($ Proxy73のようなものではありません)が表示されますが、これは正しくありません。自動配線する必要があるのはプロキシであるためです。彼は豆をターゲットにしているのではありません(これは私が思うことです)。私が正しければ、プロキシで@Transactionalアノテーションが付けられたパブリックメソッドを呼び出すときにのみアノテーションが開始されるため、トランザクションがないことは理にかなっています。
この設定でターゲットBeanを春に注入する理由を教えてください。
ありがとう