package model;
public class Address {
private String homeAddress;
private String schoolAddress;
public String getHomeAddress() {
return homeAddress;
}
public void setHomeAddress(String homeAddress) {
this.homeAddress = homeAddress;
}
public String getSchoolAddress() {
return schoolAddress;
}
public void setSchoolAddress(String shoolAddress) {
this.schoolAddress = shoolAddress;
}
}
package model;
import java.io.Serializable;
public class Student{
private String id;
private String name;
private Address address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "model.Student" table = "student" lazy="true">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="name" column = "name" type = "string"></property>
<component name="address" class = "model.Address">
<property name="homeAddress" type = "string" column="homeAddress"></property>
<property name="schoolAddress" type = "string" column = "schoolAddress"></property>
</component>
</class>
</hibernate-mapping>
package model;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
*
create table student (id varchar(255) not null, name varchar(255), homeAddress varchar(255), schoolAddress varchar(255), primary key (id))
*/
public class Create {
public static void main(String[] args) {
SchemaExport export = new SchemaExport(new Configuration().configure());
export.create(true, true);
}
}
package model;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class Test {
public static void main(String[] args) {
//save();
fetch();
}
//Hibernate: insert into student (name, homeAddress, schoolAddress, id) values (?, ?, ?, ?)
static void save () {
Session session = HibernateUtil.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Student student = new Student ();
student.setName("zhangsan");
Address address = new Address ();
address.setHomeAddress("beijing");
address.setSchoolAddress("shanghai");
student.setAddress(address);
session.save(student);
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != tx) {
tx.rollback();
}
}finally {
HibernateUtil.close(session);
}
}
static void fetch ()
{
Session session = HibernateUtil.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Student student = (Student) session.get(Student.class, "4a43c5753ee78aa4013ee78aa5bd0001");
System.out.println(student.getAddress().getHomeAddress());
System.out.println(student.getAddress().getSchoolAddress());
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != tx) {
tx.rollback();
}
}finally {
HibernateUtil.close(session);
}
}
}