當我們使用注解開發時有時會遇到數據庫字段名與實體類屬性名不一致的問題。xml方式開發可以通過結果集映射的方式解決,那注解方式開發要怎么解決呢?
注解解決方式:
@Results()注解
Results注解中有兩個常用的參數,一個是id,另一個是value。
id:這個參數的主要作用在於唯一標記這個Results注解,如果接口中的其他抽象方法也需要通過result注解來解決屬性名和數據庫字段名不一致問題,那么重新寫一個Results注解就太麻煩了,這時我們就可以通過@ResultMap()注解中傳入Results注解的參數id來引用Results注解中的內容。舉例:

public interface UserMapper { @Select("select * from user") @Results(id="aaa",value={ @Result(id=true,column = "id",property = "userId"), @Result(column = "name",property = "userName"), @Result(column = "age",property = "userAge") }) List<User> getUsers(); @Select("select count(id) from user") @ResultMap(value={"aaa"}) int findTotalUser(); }
value:這個參數用於建立實體類與數據庫表的映射關系,其中可以填寫多個@Result注解,用來將實體類的屬性名和數據庫字段名一一對應。需要注意如果是主鍵字段,@Result注解中需要設置id=true。具體例子參考上邊提供的代碼。