Java 上次添加空值时出现问题

Java 上次添加空值时出现问题,java,sql-server,spring-boot,jpql,Java,Sql Server,Spring Boot,Jpql,在以下查询中添加“NULLS LAST”时,我得到以下异常: 原因:com.microsoft.sqlserver.jdbc.SQLServerException:未为参数编号11设置该值 如果我最后删除空值,一切正常 如果我删除CASE WHEN code and order,只删除一个特定列,那么它最后会使用null,但我需要CASE WHEN上的所有列 @Query(“从ClassSpecificationTableEntity c中选择c” +“左加入c.o” +“左加入c.d域” +其

在以下查询中添加“NULLS LAST”时,我得到以下异常:

原因:com.microsoft.sqlserver.jdbc.SQLServerException:未为参数编号11设置该值

  • 如果我最后删除空值,一切正常

  • 如果我删除CASE WHEN code and order,只删除一个特定列,那么它最后会使用null,但我需要CASE WHEN上的所有列

  • @Query(“从ClassSpecificationTableEntity c中选择c”
    +“左加入c.o”
    +“左加入c.d域”
    +其中ISNULL(c.classStructure.classification.description“”)类似于:SEARCH
    +或ISNULL(c.classStructure.description“”),如:SEARCH
    +或ISNULL(d.description,“”),如:SEARCH
    +或ISNULL(o.description,“”),如:SEARCH
    +或ISNULL(c.measurementUnit“”),如:SEARCH
    +或ISNULL(c.defaultValue“”),如:SEARCH
    +或ISNULL(c.dataType“”),如:SEARCH
    +或ISNULL(c.工具提示“”),如:搜索
    +“订购人”
    +“案例:订购人”+
    “当为0时,则为c.classStructure.classification.description”+
    “当1时,则c.AssetTribid”+
    “当2之后是c.dataType”+
    “当3时,则c.measurementUnit”+
    “当4之后是c.domain.description”+
    “当5时,则c.owner.description”+
    “当为6时,则c.defaultValue”+
    “当7时,则c.工具提示”+
    “结束描述最后为空”
    )
    Page findByLikeSearchDESC(@Param(value=“SEARCH”)最终字符串searchCrit,最终可分页Pageable,@Param(value=“ORDERBY”)最终字符串ORDERBY);
    
    没有
    空值,最后的
    语法是T-SQL

    如果要最后对
    NULL
    值进行排序,常用的方法是使用
    大小写
    表达式或
    IIF

    ——大小写表达式
    当{expression}为空时,则为1,否则为0结束
    --IIF function(实际上是一个简写的大小写表达式)
    IIF({Expression}为空,1,0)
    

    如果您有一个复杂的表达式,您希望将
    NULL
    值最后排序,然后排序该表达式,并且该表达式没有出现在
    选择中(因此不能通过其别名引用),则可以将表达式从
    移动到
    ,以避免多次键入表达式:

    FROM ...
         JOIN ...
         LEFT JOIN ...
         ...
         CROSS APPLY (VALUES({Expression}))V(Alias)
    WHERE ...
    ORDER BY IIF(V.Alias IS NULL,1,0),
             V.Alias
    

    没有
    null,最后的
    语法是T-SQL

    如果要最后对
    NULL
    值进行排序,常用的方法是使用
    大小写
    表达式或
    IIF

    ——大小写表达式
    当{expression}为空时,则为1,否则为0结束
    --IIF function(实际上是一个简写的大小写表达式)
    IIF({Expression}为空,1,0)
    

    如果您有一个复杂的表达式,您希望将
    NULL
    值最后排序,然后排序该表达式,并且该表达式没有出现在
    选择中(因此不能通过其别名引用),则可以将表达式从
    移动到
    ,以避免多次键入表达式:

    FROM ...
         JOIN ...
         LEFT JOIN ...
         ...
         CROSS APPLY (VALUES({Expression}))V(Alias)
    WHERE ...
    ORDER BY IIF(V.Alias IS NULL,1,0),
             V.Alias
    

    你的
    ON
    子句在哪里?你的
    ON
    子句在哪里?谢谢你的回答,但问题是:记住你所说的一切,我如何用JPQL重写我的查询以便生成正确的T-SQL?谢谢你的回答,但问题是:记住你所说的一切,如何在JPQL中重写查询,以便生成正确的T-SQL?