【问题标题】:JPA/Hibernate: Using params as function params?JPA/Hibernate:使用参数作为函数参数?
【发布时间】:2013-01-30 05:47:39
【问题描述】:
return em.createQuery(
     "SELECT doc FROM TexyDoc doc 
       WHERE doc.origPath LIKE CONCAT('%', :1)")
    .setParameter(1, path)

导致

QuerySyntaxException: expecting IDENT, found '1' near line 1, column 82 
[SELECT doc FROM cz.oz.web.model.TexyDoc doc 
   WHERE doc.origPath LIKE CONCAT('%', :1)]

为什么?语法应该是怎样的?

【问题讨论】:

  • 为什么要选择?只是'来自 TexyDoc,其中 origPath like ..' 应该这样做..
  • 哈,该死的东西是基于 HQL 但放弃了,好吧..你是对的。

标签: java hibernate jpa parameters jpql


【解决方案1】:

这里的问题是你做 args 的方式。改为这样做:

LIKE CONCAT('%', :path)"

然后:

.setParameter("path", path);

命名参数更具可读性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2013-03-31
    • 2011-09-14
    • 2021-01-04
    相关资源
    最近更新 更多