hibernate关联映射中的组件映射
*********************
Name.java
*********************
package blog.hibernate.domain; public class Name { private String firstName; private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String fristName) { this.firstName = fristName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
******************
EnglishMan.java
*****************
package blog.hibernate.domain; public class EnglishMan { private Name name; private int id; public Name getName() { return name; } public void setName(Name name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
****************
EnglishMan.hbm.xml
***************
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="blog.hibernate.domain"> <class name="EnglishMan" table="EnglishMan"> <id name="id" column="ID"> <generator class="native"></generator> </id> <component name="name" class="Name"> <property name="firstName" column="FIRSTNAME"></property> <property name="lastName" column="LASTNAME"></property> </component> </class> </hibernate-mapping>
****************
junit test
***************
package junit.test; import org.junit.BeforeClass; import org.junit.Test; import blog.hibernate.HibernateUtil; import blog.hibernate.domain.EnglishMan; import blog.hibernate.domain.Name; public class MyComponent { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void add(){ Name name = new Name(); name.setFirstName("Wang"); name.setLastName("li"); EnglishMan englishMan = new EnglishMan(); englishMan.setName(name); try { HibernateUtil.add(englishMan); } catch (Exception e) { e.printStackTrace(); } } }
说明:组件映射可以将组件和主对像放在一个表里。