集合映射配置

来源:互联网 发布:手机铃声制作软件 mac 编辑:程序博客网 时间:2024/06/05 20:32

Product.java

package com.model;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;public class Product {private int id;private String name;private Set<String> colors = new HashSet<String>();private List<ColorPrice> colorPrices = new ArrayList<ColorPrice>();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 Set<String> getColors() {return colors;}public void setColors(Set<String> colors) {this.colors = colors;}public List<ColorPrice> getColorPrices() {return colorPrices;}public void setColorPrices(List<ColorPrice> colorPrices) {this.colorPrices = colorPrices;}}


ColorPrice.java

package com.model;public class ColorPrice {private String color;private double price;public ColorPrice(){}public ColorPrice(String color,double price){this.color = color;this.price = price;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}}


Product.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- ORM映射文件 -->        <hibernate-mapping package="com.model"><class name="Product" table="product"><id name="id" column="id"><generator class="native" /></id><property name="name"></property><set name="colors" table="p_color"><key column="pId"></key><element type="string" column="color"></element></set><bag name="colorPrices" table="p_c_p"><key column="pId"></key><composite-element class="ColorPrice"><property name="color"></property><property name="price"></property></composite-element></bag></class></hibernate-mapping>


单元测试:

@Testpublic void t(){Session session = HibernateUtil.getInstance().getSession();session.beginTransaction();Set<String> set = new HashSet<String>();set.add("red");set.add("blue");Product p = new Product();p.setName("p");p.setColors(set);List<ColorPrice> l = new ArrayList<ColorPrice>();l.add(new ColorPrice("d",3));p.setColorPrices(l);session.save(p);/*Product p = (Product) session.load(Product.class, 1);p.getColors().remove("red");*/session.getTransaction().commit();session.close();}


原创粉丝点击