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;