Hibernate组件属性

来源:互联网 发布:安全阀计算软件 编辑:程序博客网 时间:2024/06/06 21:43

Hibernate组件属性

Hibernate的组件属性其实对应在数据库中就是将某个组件(javabean)中的属性映射为字段。

创建组件(javabean)

public class Address {    private String postcode;    private String phone;    private String address;    public Address() {    }    public Address(String postcode, String phone, String address) {        this.postcode = postcode;        this.phone = phone;        this.address = address;    }    public String getPostcode() {        return postcode;    }    public void setPostcode(String postcode) {        this.postcode = postcode;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }}

Javabean

将原有的Students类中的String address换成Address address类型,并修改其set和get方法。

import java.sql.Blob;import java.util.Date;/**学生类 * @author qiqiangvae * */public class Students {    private int id;    private String name;    private String gender;    private Date date;    private Address address;    private Blob picture;    public Students() {    }    public Students(int id, String name, String gender, Date date, Address address) {        super();        this.id = id;        this.name = name;        this.gender = gender;        this.date = date;        this.address = address;    }    @Override    public String toString() {        return "Students [id=" + id + ", name=" + name + ", gender=" + gender + ", date=" + date + ", address="                + address + ", picture=" + picture + "]";    }    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 String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    public Date getDate() {        return date;    }    public void setDate(Date date) {        this.date = date;    }    public Address getAddress() {        return address;    }    public void setAddress(Address address) {        this.address = address;    }    public Blob getPitcure() {        return picture;    }    public void setPicture(Blob picture) {        this.picture = picture;    }}

修改Students.hbm.xml

修改Students.hbm.xml,将原有的address删掉,添加新的组件属性

<component name="address" class="Address">        <property name="postcode" column="POSTCODE"></property>        <property name="phone" column="PHONE"></property>        <property name="address" column="ADDRESS"></property></component>

写入组件属性

public void testSaveStudents() {        Students students=new Students();        students.setName("李心剑");        students.setDate(new Date());        Address address=new Address("246514", "13055555555", "纯阳宫");        students.setAddress(address);        session.save(students);}

写入组件属性后的表结构
写入的数据
可以看到,Hibernate是将组件(Javabean)中的属性追加到数据表后面作为新的字段。

0 0
原创粉丝点击