PersistenceContext 또는 PersistenceUnit을 삽입하는 경우, EntityManager 또는
EntityManagerFactory 오브젝트를 사용하고 서브클래스는 사용하지 마십시오. 이 규칙은 EntityManager 또는 EntityManagerFactory의 삽입된 서브클래스를 사용하는지 여부를 발견합니다.
다음 조건은 이 규칙을 트리거합니다.
- PersistenceContext:
- 어노테이션은 필드 레벨에 정의됩니다.
- 필드 유형이 EntityManager가 아닙니다.
javax.persistence.EntityManager
- PersistenceUnit:
- 어노테이션은 필드 레벨에 정의됩니다.
- 필드 유형이 EntityManager팩토리가 아닙니다.
javax.persistence.EntityManagerFactory
소스 스캐너 빠른 수정사항은 이러한 서브클래스를 클래스의 EmtityManager 또는 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;