代码:
//dao层
import io.lettuce.core.dynamic.annotation.Param;
@MyBatisDao
public interface TestDataChildDao extends CrudDao<TestDataChild> {
public List<String> Test(@Param("id") String id, @Param("testSort") String testSort);
}
//dao-xml
<mapper namespace="com.jeesite.modules.test.dao.TestDataChildDao">
<select id="Test" resultType="java.lang.String">
select * from test_data_child where id=#{id} and test_sort=#{testSort}
// 使用id=#{param1} and test_sort=#{param2} 这样取值是没有问题的
</select>
// 调用
testDataChildDao.Test("11","22");
现象:在IDAE项目正常运行,但是一到测试环境就死活报错
org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [arg1, arg0, param1, param2]
这个就很难了,本地一模一样的代码正常运行
我不停找,试了将@Param去掉能行,但是这个方法不好用
于是一个小时后 我在百度中找到了答案
@Param的包导错了!!!
导成了
import io.lettuce.core.dynamic.annotation.Param;
改成
import org.apache.ibatis.annotations.Param;
OK!!!完美解决