Page History
...
하지만, EntityManager(이하 em)가 관리하는 PersitenceContext를 이해하려면
em을 em객체를 통해 저수준의 JPA API를 통해 영속성과 관련된 몇가지 기능을 직접 호출하여 데이터 베이스를 제어해보겠습니다호출해보는것이 도움이되며
조금더 복잡하고 커스텀한 트랜잭션 처리및 조회등,서비스로직과 관련된 변경처리를
조금더 로우수준으로 구현가능합니다.
인터페이스 준비
Code Block | ||||
---|---|---|---|---|
| ||||
public interface MyAddressRepository { void someTest(Address2 address2); } public class AddressRepositoryImpl implements MyAddressRepository { @PersistenceContext private EntityManager em; @Override @Transactional public void someTest(Address2 address2) { em.refresh(address2); em.detach(address2); em.persist(address2); em.lock(address2, null); em.flush(); } } public interface AddressRepository extends JpaRepository<Address2, Long>,MyAddressRepository { } |
네이밍 룰
네이밍 | 설명 |
---|---|
MyAddressRepository | 인터페이스이며, 커스텀함 함수규격을 미리 설명을 해놓아야합니다. 네이밍 특성 : 특성+테이블명+저장소 My + Address + Repository |
AddressRepositoryImpl | 커스텀한 구현체를 정의합니다. 네이밍 특성: 테이블명+저장소+구현 MyAddressRepositoryImpx ( X ) |
AddressRepository | 최종 사용가능해진 저장소이름입니다. JPA의 기본 저장소 특성과함께 사용자 정의 기능을 함께 사용가능합니다. 네이밍특성: 테이블명+저장소 |