例外の根本原因についてお聞きしたいです。
Caused by: java.lang.ClassCastException: java.lang.Class cannot be cast to
java.lang.reflect.ParameterizedType
proxy-target-class="true"これは、Spring にクラスのプロキシを生成させる (つまり、トランザクション マネージャーで設定する) ときに Spring で発生します。
<tx:annotation-driven transaction-manager="transactionManager"
proxy-target-class="true"/>
プロキシするクラスがパラメータ化されたクラスの場合、つまり
public class SomeDAOImpl<SomeEntity> implements SomeDAO ...
たとえば、この質問で完全なストーリーを読むことができます: Abstract DAO pattern and Spring's "Proxy cannot be cast to ..." problem!
質問: Spring がこのクラスをプロキシできないのはなぜですか? 古いコード生成ライブラリを使用しているからでしょうか? 型消去のため?SomeDAOImplがジェネリック クラスでない場合は、成功します (確認しました)。
「クラスではなくインターフェイスをプロキシする必要があります」のように答えないでください。そんなこと知ってる。