PersistenceContext または PersistenceUnit を挿入するとき、EntityManager または EntityManagerFactory オブジェクトを使用して、サブクラスは使用しないでください。
この規則は、挿入された EntityManager または EntityManagerFactory のサブクラスがあることを検出します。
以下の条件によって規則が起動します。
- PersistenceContext:
- アノテーションがフィールド・レベルで定義されている。
- フィールド・タイプが EntityManagerではない。
javax.persistence.EntityManager
- PersistenceUnit:
- アノテーションがフィールド・レベルで定義されている。
- フィールド・タイプが EntityManagerFactory ではありません。
javax.persistence.EntityManagerFactory
自動修正により、これらのサブクラスは EntityManager または EntityManagerFactory クラスに置き換えられます。
例:
- この規則は、以下の PersistenceContext コードを検出します。
@PersistenceContext
CustomEntityManager myMgr;
- 自動修正はこのコードを次のように変更する:
@PersistenceContext
EntityManager
myMgr;
- 注: クラスに次のインポート・ステートメントがまだ含まれていない場合:
javax.persistence.EntityManager
その場合、更新されたコードは次のようになる:
@PersistenceContext
javax.persistence.EntityManager
myMgr;
- 規則は以下の PersitenceUnit コードを検出します。
@PersistenceUnit
CustomEntityManagerFactory
myFactory;
- 自動修正はこのコードを次のように変更する:
@PersistenceUnit
EntityManagerFactory
myFactory;
- 注: クラスに次のインポート・ステートメントがまだ含まれていない場合:
javax.persistence.EntityManagerFactory
その場合、更新されたコードは次のようになる:
@PersistenceUnit
javax.persistence.EntityManagerFactory
myFactory;