package org.easyframe.tutorial.lesson5.entity; import java.util.HashMap; import java.util.Map; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import jef.database.DataObject; import jef.database.annotation.Cascade; @Entity() public class Item extends DataObject { @Id @GeneratedValue private int id; private String name; private int catalogyId; // 扩展字段--写入用 @Cascade(keyOfMap="key",valueOfMap="value") @OneToMany(targetEntity = ItemExtendInfo.class, mappedBy = "itemId", cascade = { CascadeType.MERGE, CascadeType.REMOVE }) private Map<String,Object> itemExtInfos; public Item() { } public Item(String name) { this.name = name; } public Item(int id) { this.id = id; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCatalogyId() { return catalogyId; } public void setCatalogyId(int catalogyId) { this.catalogyId = catalogyId; } public enum Field implements jef.database.Field { id, name, catalogyId } public Map<String, Object> getItemExtInfos() { return itemExtInfos; } public void setItemExtInfos(Map<String, Object> itemExtInfos) { this.itemExtInfos = itemExtInfos; } public Item setExtendInfo(String code, String length, String locale) { itemExtInfos = new HashMap<String,Object>(); // itemExtInfos.put("录像编号",new ItemExtendInfo("录像编号", code)); // itemExtInfos.put("拍摄时长",new ItemExtendInfo("拍摄时长", length)); // itemExtInfos.put("拍摄地点",new ItemExtendInfo("拍摄地点", locale)); itemExtInfos.put("录像编号", code); itemExtInfos.put("拍摄时长", length); itemExtInfos.put("拍摄地点", locale); return this; } }