У нас есть таблица mysql с составным первичным ключом. В таблице хранятся элементы. Затем у нас есть itemId, itemName, itemType, lang, shortDescription, LongDescription и некоторые другие поля. Клавиши - itemId и lang. Это означает, что элемент с идентификатором один можно повторить для английского и испанского, и на основе этого мы имеем разные короткие и длинные описания. База данных не нормируется, и она также не будет нормализована. Я написал боб Java для пункта, который выглядит следующим образом:MyBattis mapper для таблицы с составным первичным ключом
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;
}
}
где описание Ланг другой боб Java, содержащий языки, SHORTDESCRIPTION и LongDescription.
Теперь я хочу написать mapper using MyBatis, чтобы выбрать все строки из таблицы. Элемент с теми же именами столбцов, что и имена полей (itemId, itemType, lang, shortDescription, longDescription) и создать список элементов.
public interface CRMTermsAndConditionsMapper {
static final String SELECT_ITEMS = "SELECT * FROM items;";
@Select(SELECT_ITEMS)
List<Item> selectItems();
}
Любое предложение, как это можно сделать? Должен ли я использовать TypeHandler или лучше использовать коллекторы и аннотации @Result?