JPQL命名参数可以在多个位置使用吗?

时间:2014-01-08 17:29:39

标签: jpa jpql

例如,我应该能够执行以下操作:

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实现中移植。

1 个答案:

答案 0 :(得分:3)

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

请参阅JPA 2.0 spec 4.6.4.2命名参数部分。