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