如何从Hibernate createQuery HQL

时间:2019-03-22 14:33:06

标签: hibernate kotlin spring-data-jpa

嗨,我要弄清楚如何从HQL中的createQuery返回包含列表的Projection。我的实体包含我在投影/ DTO中也要拥有的元素集。

实体

data class Entity (
    @Id
    val id: Int,
    val name: String?,
    val elements: MutableSet<Elements> = mutableSetOf(),
... ... ... .. .. .. .. ...

)

DTO

data class ClassWithProjection (
    val id: Int,
    val name: String?,
    val elements: Set<Elements> = emptySet()
)

存储库配置:

entityManager.createQuery(
            """SELECT new com.package.ClassWithProjection(t.id, t.name, t.elements)
                FROM Table t
                WHERE t.id IN :ids
        """, ClassWithProjection::class.java
        ).setParameter("ids", ids)
            .resultList

但是执行查询时出现错误:

  

o.h.e.j.s.SqlExceptionHelper-错误:“或”附近的语法错误。   InvalidDataAccessResourceUsageException:无法提取ResultSet。   SQL [n / a];嵌套异常为   org.hibernate.exception.SQLGrammarException:无法提取   ResultSet]

0 个答案:

没有答案