spring jpa在max query中处理null值

时间:2014-09-10 07:59:42

标签: spring jpa spring-data-jpa

我尝试使用此查询从数据库中选择序列ID:

@Query("select max(pi.sequence) + 1 from ProductImage pi where pi.product = :product")
    int nextSequenceForProduct(@Param("product")Product product);

它很有效,除非表中没有值,它会从JPA代码中抛出某种类型的空值异常。

有没有办法在spring jpa中处理null值?比如像这样的SQL:

select ifnull(max(pi.sequence),1) from ....

1 个答案:

答案 0 :(得分:0)

您可以使用nvl()函数并将查询更改为本机查询或命名本机查询以避免异常

@NativeQuery("select nvl(max(pi.sequence),0) + 1 from ProductImage pi where pi.product = :product")