首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JPA中的投射集合

2013-08-10 
JPA中的映射集合?????*/ ????@ElementCollection ????@JoinTable(nameitem_image, joinColumns {@Join

JPA中的映射集合
?????*/ ????@ElementCollection ????@JoinTable(name="item_image", joinColumns= {@JoinColumn(nullable = false, name ="item_id")}) ????@CollectionId(columns={@Column(name="item_auto_id")}, type=@Type(type="long"), generator="nat") ????private Collection<Image> list = new ArrayList<Image>(); ??????public long getId() { ????????return id; ????} ??????public void setId(long id) { ????????this.id = id; ????} ??????public String getName() { ????????return name; ????} ??????public void setName(String name) { ????????this.name = name; ????} ??????public Set<String> getImages() { ????????return images; ????} ??????public void setImages(Set<String> images) { ????????this.images = images; ????} ??????public List<String> getListImages() { ????????return listImages; ????} ??????public void setListImages(List<String> listImages) { ????????this.listImages = listImages; ????} ??????public Map<String, String> getMapImages() { ????????return mapImages; ????} ??????public void setMapImages(Map<String, String> mapImages) { ????????this.mapImages = mapImages; ????} ??????public Collection<Image> getList() { ????????return list; ????} ??????public void setList(Collection<Image> list) { ????????this.list = list; ????} } ??????Image.java ??import javax.persistence.Column; import javax.persistence.Embeddable; ??@Embeddable public class Image { ????private String filename; ??????????@Column(name="size_x") ????private int sizeX; ??????????@Column(name="size_y") ????private int sizeY; ??????public boolean equals(Object obj) { ????????if (!(obj instanceof Image)) ????????????return false; ????????Image image = (Image) obj; ????????if ((image.getFilename().equals(this.getFilename())) ????????????????&& (image.sizeX == this.getSizeX()) ????????????????&& image.getSizeY() == this.getSizeY() ????????????????) ????????????return true; ????????else return false; ????} ??????public int hashCode() { ????????// TODO Auto-generated method stub ????????return 0; ????} ??????public String getFilename() { ????????return filename; ????} ??????public void setFilename(String filename) { ????????this.filename = filename; ????} ??????public int getSizeX() { ????????return sizeX; ????} ??????public void setSizeX(int sizeX) { ????????this.sizeX = sizeX; ????} ??????public int getSizeY() { ????????return sizeY; ????} ??????public void setSizeY(int sizeY) { ????????this.sizeY = sizeY; ????} } ????Test: ??public class CollectionTest { ????public static void main(String[] args) { ????????CollectionModel model = new CollectionModel(); ????????model.setName("李四"); ????????/*插入数据 //????? Set<String> set = new HashSet<String>(); //????? set.add("lisi -1"); //????? set.add("lisi -1"); //????? model.setImages(set); //????? List<String> list = new ArrayList<String>(); //????? list.add("张三"); //????? list.add("李四"); //????? list.add("王五"); //????? model.setListImages(list); ????????*/ ????????/** ?????????* 针对map的测试类 ?????????*/ ????????/*Map<String, String> map = new HashMap<String,String>(); ????????map.put("key1", "value1"); ????????map.put("key2", "value2"); ????????map.put("key3", "value3"); ????????model.setMapImages(map); ?????????*/????????List<Image> list = new ArrayList<Image>(); ????????Image image = new Image(); ????????image.setFilename("file1"); ????????image.setSizeX(20); ????????image.setSizeY(30); ????????list.add(image); ??????????????????image = new Image(); ????????image.setFilename("file2"); ????????image.setSizeX(40); ????????image.setSizeY(50); ????????list.add(image); ????????model.setList(list); ????????JPASessionFactory.persistenceObject(model); ????} ??}?描述:Ⅰ.Hibernate annotations 对包含值类型的集合映射支持非标准的注解. 对于值类型的对象不具备数据库的同一性,它属于一个实体的实例,值类型的类没有标识符或者标识属性,值类型的实例的生命周期由所依附的实体实例的生命周期所决定,且值类型的对象不支持共享引用。

热点排行