当注入 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;
- 注: 如果该类尚未包含以下对象的 import 语句:
javax.persistence.EntityManager
那么您更新后的代码将类似于
@PersistenceContext
javax.persistence.EntityManager
myMgr;
- 该规则检测以下 PersitenceUnit 代码:
@PersistenceUnit
CustomEntityManagerFactory
myFactory;
- 自动修复会将此代码更改为
@PersistenceUnit
EntityManagerFactory
myFactory;
- 注: 如果该类尚未包含以下对象的 import 语句:
javax.persistence.EntityManagerFactory
那么更新后的代码将类似于
@PersistenceUnit
javax.persistence.EntityManagerFactory
myFactory;