在JPA中使用@Query时的ResultTransformer

时间:2018-12-21 23:00:49

标签: spring hibernate spring-data-jpa

我正在将Spring Data JPA与hibernate一起使用,并拥有一个看起来像这样的存储库。这里的本机SQL是一个示例,我要实现的要复杂得多。

public interface JobHistoryRepository extends JpaRepository<Job, Long>, JpaSpecificationExecutor<Job>
{
@Query(nativeQuery = true, value = "SELECT job_id,region,submitted_date FROM JOB WHERE submitted_date > :submittedDate") 
List<Job> findJobsBySubmittedDate(@Param("submittedDate") Date submittedDate);
}

在这种情况下,如何将resultSet转换为List<Job>?我知道要像下面那样使用resultTransformer,但是如何在Spring Data Repository界面中使用它。

List<Job> jobList = entityManager.createNativeQuery(query)
         .setParameter("submittedDate", submittedDate)
         .unwrap( org.hibernate.query.NativeQuery.class )
         .setResultTransformer( Transformers.aliasToBean( Job.class ) )
         .getResultList();

0 个答案:

没有答案