HQL,JPQL占位符区别

      HQL和JPQL都支持两种方式的参数定义方式: 命名参数和位置参数,但是在在同一个查询语句中只允许使用一种参数定义方式。命名参数方式都一样,采用(:*) 这样的格式。

    在使用位置参数的时候,HQL采用?;而JPQL采用?*。这里的*号是占位符的一部分,基数为1。于是在我们的JPQL中会这样使用?1    ?2    ?3,当然在setParameter(int arg1,Object arg2)的时候arg1也是与*值对应的。可是HQL在setParameter(int arg1,Object arg2)的时候arg1是从0开始的。

你可能感兴趣的:(JPQL)