【问题标题】:Can JPQL named parameters be used in more than 1 position?JPQL 命名参数可以用在 1 个以上的位置吗?
【发布时间】:2014-01-26 22:59:59
【问题描述】:

例如,我应该能够做到以下几点:

Query deleteQuery = entityManager.createQuery("delete from LogEntry log "
    + "where log.year < :year "
    + "or (log.year = :year and log.month < :month) "
    + "or (log.year = :year and log.month = :month and log.dayOfMonth <= :dayOfMonth");
deleteQuery.setParameter("year", year);
deleteQuery.setParameter("month", month);
deleteQuery.setParameter("dayOfMonth", dayOfMonth);
int deleteCount = deleteQuery.executeUpdate();

我是否必须定义 6 个单独的命名参数?参考文献和 javadoc 没有明确解决这种情况。我正在我的环境(Glassfish / Eclipselink)中尝试它,但我希望我想出的任何最终解决方案都可以跨 JPA 实现移植。

【问题讨论】:

    标签: jpa jpql


    【解决方案1】:

    规范确实提到“同一命名参数可以在查询字符串中多次使用。

    参见JPA 2.0 spec4.6.4.2 命名参数部分

    【讨论】:

    • 这就是我想要的。我在谷歌上搜索到的大部分摘要似乎都忽略了那句话。谢谢 - 不,我有规范的副本。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 2016-12-20
    • 2016-10-24
    相关资源
    最近更新 更多