fix(firstleg): restore sailing channel duplicate lookup
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@ public interface SailingChannelMapper extends BaseMapper<SailingChannelEntity> {
|
|||||||
AND (#{query.status} IS NULL OR status=#{query.status})
|
AND (#{query.status} IS NULL OR status=#{query.status})
|
||||||
ORDER BY status ASC,channel_name ASC,id ASC</script>
|
ORDER BY status ASC,channel_name ASC,id ASC</script>
|
||||||
""")
|
""")
|
||||||
List<SailingChannelEntity> selectList(@Param("query") ChannelQuery query);
|
List<SailingChannelEntity> selectChannels(@Param("query") ChannelQuery query);
|
||||||
|
|
||||||
@Update("""
|
@Update("""
|
||||||
UPDATE fl_sailing_channel SET channel_code=#{value.channelCode},channel_name=#{value.channelName},
|
UPDATE fl_sailing_channel SET channel_code=#{value.channelCode},channel_name=#{value.channelName},
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ public class SailingCalendarRepository {
|
|||||||
@Resource private SailingFactsRepository facts;
|
@Resource private SailingFactsRepository facts;
|
||||||
@Resource private OceanBookingRepository oceanBookings;
|
@Resource private OceanBookingRepository oceanBookings;
|
||||||
|
|
||||||
public List<SailingChannelEntity> channels(ChannelQuery query) { return channels.selectList(query); }
|
public List<SailingChannelEntity> channels(ChannelQuery query) { return channels.selectChannels(query); }
|
||||||
public SailingChannelEntity channel(long id) { return channels.selectById(id); }
|
public SailingChannelEntity channel(long id) { return channels.selectById(id); }
|
||||||
public SailingChannelEntity channelByCode(String code) {
|
public SailingChannelEntity channelByCode(String code) {
|
||||||
return channels.selectOne(new LambdaQueryWrapper<SailingChannelEntity>()
|
return channels.selectOne(new LambdaQueryWrapper<SailingChannelEntity>()
|
||||||
|
|||||||
+36
@@ -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<Object> parameters = new MapperMethod.ParamMap<>();
|
||||||
|
parameters.put(Constants.WRAPPER, new LambdaQueryWrapper<SailingChannelEntity>()
|
||||||
|
.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");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user