Java 处理空值参数的JPA查询

Java 处理空值参数的JPA查询,java,hibernate,jpa,Java,Hibernate,Jpa,我想从JPA中的表中选择行,我的查询参数可以为null。 因此,如果它为null,我想考虑该表中该属性的所有值 这是我的密码: @Query("SELECT art FROM ArtWork art INNER JOIN art.subjects subject " + "INNER JOIN art.styles style " + "INNER JOIN art.collections collection " + "I

我想从JPA中的表中选择行,我的查询参数可以为null。 因此,如果它为null,我想考虑该表中该属性的所有值

这是我的密码:

@Query("SELECT art FROM ArtWork art INNER JOIN art.subjects subject "
            + "INNER JOIN art.styles style "
            + "INNER JOIN art.collections collection "
            + "INNER JOIN art.priceBuckets priceBucket "
            + " WHERE ((subject.title) in (:subjectList) "
            + "AND (style.title) in (:styleList)"
            + "AND (collection.title) in (:collectionList)"
            + "AND (priceBucket.title) in (:priceBucketRangeList)"
            + "AND (art.medium is NULL OR art.medium = :medium)"
            + "AND (art.orientation) LIKE:orientation)"
            + ")")
在代码中,如果:medium为null,则我希望它搜索表中的所有介质


谢谢

如果medium参数为null,请不要在查询中包含
和(art.medium为null或art.medium=:medium)
子句。谢谢JB,但我尝试了类似的方法来解决它。和(:medium为NULL或art.medium=:medium)@KaushikShanmugamNagaraj发布了与您的问题类似的答案,尽管它使用了
标准API
,但概念是相同的。@ankur singhal,试试我用过的。。不必检查参数是否为空