diff --git a/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapper.java b/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapper.java index 82de6a030..aaca57c1a 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapper.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapper.java @@ -18,7 +18,7 @@ public interface SailingChannelMapper extends BaseMapper { AND (#{query.status} IS NULL OR status=#{query.status}) ORDER BY status ASC,channel_name ASC,id ASC """) - List selectList(@Param("query") ChannelQuery query); + List selectChannels(@Param("query") ChannelQuery query); @Update(""" UPDATE fl_sailing_channel SET channel_code=#{value.channelCode},channel_name=#{value.channelName}, diff --git a/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/repository/SailingCalendarRepository.java b/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/repository/SailingCalendarRepository.java index 4703af9b7..341be2ea1 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/repository/SailingCalendarRepository.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/sailingcalendar/repository/SailingCalendarRepository.java @@ -37,7 +37,7 @@ public class SailingCalendarRepository { @Resource private SailingFactsRepository facts; @Resource private OceanBookingRepository oceanBookings; - public List channels(ChannelQuery query) { return channels.selectList(query); } + public List channels(ChannelQuery query) { return channels.selectChannels(query); } public SailingChannelEntity channel(long id) { return channels.selectById(id); } public SailingChannelEntity channelByCode(String code) { return channels.selectOne(new LambdaQueryWrapper() diff --git a/firstleg/src/test/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapperTest.java b/firstleg/src/test/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapperTest.java new file mode 100644 index 000000000..29e061bb8 --- /dev/null +++ b/firstleg/src/test/java/com/baiyue/firstleg/sailingcalendar/mapper/SailingChannelMapperTest.java @@ -0,0 +1,36 @@ +package com.baiyue.firstleg.sailingcalendar.mapper; + +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baiyue.firstleg.sailingcalendar.entity.SailingChannelEntity; +import org.apache.ibatis.binding.MapperMethod; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.scripting.defaults.DefaultParameterHandler; +import org.junit.jupiter.api.Test; + +import java.sql.PreparedStatement; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +class SailingChannelMapperTest { + @Test + void inheritedSelectListStillBindsWrapperForChannelCodeLookup() throws Exception { + MybatisConfiguration configuration = new MybatisConfiguration(); + configuration.addMapper(SailingChannelMapper.class); + MappedStatement statement = configuration.getMappedStatement(SailingChannelMapper.class.getName() + ".selectList"); + MapperMethod.ParamMap parameters = new MapperMethod.ParamMap<>(); + parameters.put(Constants.WRAPPER, new LambdaQueryWrapper() + .eq(SailingChannelEntity::getChannelCode, "MATSON")); + BoundSql sql = statement.getBoundSql(parameters); + PreparedStatement preparedStatement = mock(PreparedStatement.class); + + new DefaultParameterHandler(statement, parameters, sql).setParameters(preparedStatement); + + assertThat(sql.getSql()).contains("channel_code = ?"); + verify(preparedStatement).setString(1, "MATSON"); + } +}