使用@Query

时间:2018-09-03 12:00:27

标签: hibernate kotlin spring-data-jpa hibernate-query

我看到的大多数示例都是使用entityManager.createQuery或.createNativeQuery等。

有没有办法使以下工作正常?

data class SummaryDto(val employeeName: String, val employerName: String)

@Query("select e.name as employeeName, emp.name as employerName " +
            "from Employer e " +
            "inner join Employee emp on emp.employer_id = e.id ", nativeQuery = true)
    fun findSummaries(): List<SummaryDto>

当我运行上面的代码时

我收到此错误 找不到能够从类型转换的转换器 [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [dto.SummaryDto]

这可以用Kotlin完成吗,还是有另一种方法可以使其与基于Hibernate JPA Annotation一起使用?

谢谢 锡

1 个答案:

答案 0 :(得分:3)

对于可能遇到相同问题的任何人。将SummaryDto更改为这样的界面

interface SummaryDto { val employeeName: String val employerName: String }

将起作用。