java~springboot~ibatis Invalid bound statement (not found)原因
阿新 • • 發佈:2018-12-30
事實起因
最近在ORM上使用了ibatis,感覺挺繁瑣的,沒有jpa來的直接,但專案非要用也沒有辦法,最近在進行開發過程中出現了一個問題Invalid bound statement (not found)
意思是說,你的xml對映和你的mapper方法不一致,這種不一致大叔總結幾點,如果你出現了這種問題可以按著下面幾後進行排查。
可能出現的原因
- xml輸入引數型別不匹配,你可以改成
parameterType="map"
試試 - xml返回引數型別問題,resultType="你的型別",不要寫成resultMap="你的型別"
- 返回的DTO與返回結果集名稱不匹配,這時你要對照型別的屬性,去為sql設定別名
- yml檔案裡對ibatis配置有問題
如下面程式碼:
@Getter @Setter public class BusinessCustomerDTO { private Long id; private String customerName; private String contactPerson; private Integer freeDays; private String city; private String province; private String source; private LocalDateTime enterDays; private String leadingPerson; }
對應的mapper程式碼:
<select id="getBusinessCustomers" parameterType="java.util.Map" resultType="cn.pilipa.customer.management.dto.BusinessCustomerDTO"> select a.id, a.customer_name as customerName, a.city_code as city, a.province_code as province, a.customer_source as source, b.enter_storage_time as enterDays, b.current_salesperson as leadingPerson, c.contact_person as contactPerson from customer_base_info a inner join customer_business_info b on a.id=b.customer_id left join customer_contact_person c on c.customer_id=a.id where c.is_main_contact=1 </select>