<select id="channelPricePlanPage" resultType="com.nhy.core.combination.entity.ChannelPricePlan"> SELECT t.* from ( SELECT p.*,p.id descId from package_channel_price_plan p as a where a.sys_default=0 UNION SELECT c.*,c.id descId from package_commodity_main_info as b LEFT JOIN package_channel_price_plan as c on b.plan_code=c.plan_code where 1=1 <if test="query.commodityCode !=null"> and b.commodity_code = #{query.commodityCode} </if> ) as t where 1=1 <if test="query.planCode !=null"> and t.plan_code= #{query.planCode} </if> <if test="query.planName !=null"> and t.plan_name LIKE CONCAT('%', #{query.planName}, '%') </if> <if test="query.planStatus !=null"> and t.plan_status = #{query.planStatus} </if> order by <if test="query.planId !=null"> descId=#{query.planId} desc, </if> t.updated_time DESC </select> 这个 mybatis代码有错误吗
时间: 2024-04-20 18:22:21 浏览: 132
mybatis-3-config.dtd mybatis-3-mapper.dtd
这段 MyBatis 代码没有明显的语法错误。然而,根据你提供的代码片段,有几个可能的问题需要注意:
1. 别名的使用:在子查询中,不能使用 "as" 关键字为表起别名。应该直接使用表名引用子查询的结果。
2. 参数引用:在 XML 配置文件中,参数引用应该使用 `#{}` 语法,而不是 `${}`。确保 `query.commodityCode`、`query.planCode`、`query.planName` 和 `query.planStatus` 是正确传递的参数。
3. SQL 片段的条件:确保 `query.commodityCode`、`query.planCode`、`query.planName` 和 `query.planStatus` 都不为 `null` 才会添加相应的条件。
请在使用之前对代码进行仔细检查,并确保所有的参数和表名都正确匹配。
阅读全文