我們有一個包含複合主鍵的mysql表。桌子拿着物品。 然後我們有itemId,itemName,itemType,lang,shortDescription,LongDescription和其他一些fields.The鍵是itemId和lang。這意味着ID爲1的商品可以重複使用英文和西班牙文,基於此我們有不同的短期和長期的描述。數據庫沒有被標準化,也不會被標準化。我爲Item寫了一個Java bean,如下所示:具有複合主鍵表的MyBattis映射器
public class Item {
private String itemId;
private String itemName;
private String itemType;
List<LangDescription> langdescriptions;
public String getItemId() {
return itemId;
}
public void setItemId(String itemId) {
this.itemId = itemId;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public String getItemType() {
return itemType;
}
public void setItemType(String itemType) {
this.itemType = itemType;
}
public List<LangDescription> getLangdescriptions() {
return langdescriptions;
}
public void setLangdescriptions(List<LangDescription> langdescriptions) {
this.langdescriptions = langdescriptions;
}
}
其中lang描述是另一個包含lang,shortDescription和LongDescription的Java bean。
現在我想使用MyBatis編寫一個映射器,從表中選擇列名與列名相同的所有行(itemId,itemType,lang,shortDescription,longDescription)並創建一個Items列表。
public interface CRMTermsAndConditionsMapper {
static final String SELECT_ITEMS = "SELECT * FROM items;";
@Select(SELECT_ITEMS)
List<Item> selectItems();
}
任何建議如何做到這一點?我應該使用TypeHandler還是使用Collectons和@Result註釋更好?