문서의 이전 판입니다!
public interface MyEntityRepository extends JpaRepository<MyEntity, KeyClass>, MyEntityRepositoryCustom { }
QueryDslPredicateExecutor
를 추가하지 않아도 된다. Custom 에서 QueryDslJpaRepository
를 구현해서 직접 사용해도 된다.JpaRepository
, QueryDslJpaRepository
, JpaSpecificationExecutor
등을 조합하고자 할 경우에 이것들을 통합 상속하는 인터페이스를 만들고 JpaRepository
대신 이를 extends 해도 된다.@Transactional(value = "transactionManager", readOnly = false) public abstract class MyDomainRepositorySupport extends QueryDslRepositorySupport { // JdbcTemplate, jooq 등을 injection할 수도 있다. public MyDomainRepositorySupport(Class<?> domainClass) { super(domainClass); } @PersistenceContext(unitName = "persistenceUnitName") @Override public void setEntityManager(EntityManager entityManager) { super.setEntityManager(entityManager); } }
@Query(value = "select user_id, user_name from users ", nativeQuery = true) List<Object[]> findUSBCandidates();
@Query(value=“쿼리문”, nativeQuery = true)
로 수행한다.Object []
로 받아서 컬럼 지정 순서대로 값을 뽑아서 사용한다.QueryDslRepositorySupport
을 상속하면 QueryDSL 사용이 가능해진다.QuerydslRepositorySupport
로 이름 변경QueryDslRepositorySupport
상속 객체를 Spy()
로 만들고 repositoryImpl.from(_) » jpqlQuery
로 한 뒤에 jpqlQuery
에 대해 행위를 정의하면 된다.