hibernate的一对一映射的例子
来源:互联网 发布:北京国家会计学院知乎 编辑:程序博客网 时间:2024/04/26 10:52
//IdCard.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="com.totalOne2one">
<class name="IdCard">
<id name="id">
<generator class="foreign"><!--采用外间生成方式生成主键值-->
<!--表示取Person的主键值生成IdCard的主键值,这里的person要与下面的one2one里面的属性值一致-->
<param name="property">person</param>
</generator>
</id>
<property name="name"></property>
<!-- 下面的属性lazy="proxy"表示懒加载 fetch="join"表示不懒加载-->
<one-to-one cascade="all" name="person"
constrained="true"></one-to-one>
<!-- 第二种写法
<class name="IdCard">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<many-to-one name="person" column="person_Id" unique="true" not-
null="true"></many-to-one>-->
</class>
</hibernate-mapping>
//Person.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="com.totalOne2one">
<class name="Person">
<id name="personId">
<generator class="native"></generator>
</id>
<component name="name">
<property name="firstName"></property>
<property name="lastName"></property>
</component>
<one-to-one cascade="all" name="idCard"></one-to-one>
</class>
<!-- 第二种写法
<class name="Person">
<id name="personId">
<generator class="native"></generator>
</id>
<component name="name">组件映射
<property name="firstName"></property>
<property name="lastName"></property>
</component>
<one-to-one cascade="all" name="idCard" property-ref="person"/>--><!-- 这就是IdCard中的person,根据它找得到IdCard的对象 -->
</hibernate-mapping>
//这是pojos类
public class IdCard {
private Integer id;
private String name;
private Person person;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
public class Person {
private Integer personId;
private Name name;
private IdCard idCard;
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public IdCard getIdCard() {
return idCard;
}
public void setIdCard(IdCard idCard) {
this.idCard = idCard;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
}
public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
//测试的代码
import com.total.HibernateUtil;
public class Main {
public static void main(String[] args) {
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
/*IdCard idCard = new IdCard();
idCard.setName("12345");
Person person = new Person();
Name name = new Name();
name.setFirstName("firstname");
name.setLastName("lastName");
person.setName(name);
person.setIdCard(idCard);
idCard.setPerson(person);
session.save(person);
//session.save(idCard);
transaction.commit();
// Person person1 = (Person) session.get(Person.class, 1);
// System.out.println(person1.getIdCard().getName());*/
//Person person = (Person) session.get(Person.class, 1);
//System.out.println(person.getIdCard().getName());
IdCard card = (IdCard) session.get(IdCard.class, 1);
Hibernate.initialize(card.getPerson());
System.out.println("----------");
System.out.println(card.getPerson().getName());
session.close();
}
}
- hibernate的一对一映射的例子
- Hibernate的一对一映射
- hibernate一对一映射例子
- Hibernate--一对一的关联映射
- Hibernate中的一对一映射文件的配置
- Hibernate HelloWorld-08 一对一的映射
- hibernate 一对一映射的两种方式
- Hibernate基于主键的一对一映射关系
- Hibernate ORM映射:基于主键的一对一
- SSH框架之Hibernate的一对一映射
- hibernate笔记-006-双向的一对一映射
- Hibernate映射一对一的关联关系
- Hibernate 一对一共享主键关联的例子
- hibernate映射详解:一对一映射的两种实现方式
- hibernate的一对一映射-外键映射-单向-mysql数据库
- hibernate的一对一映射-主键映射-单向-mysql数据库
- hibernate的一对一映射-外键映射-双向-mysql数据库
- 关于今天想到的hibernate的一对一映射关系
- N-gram模型
- Android拓展系列(6)--CM9源码下载和编译
- 火狐Firefox地址栏搜索引擎修改方法!
- 【insigma】ArrayList的创建、使用小示例
- 在Ubuntu12.04上安装postgresql9.1和postgis1.5
- hibernate的一对一映射的例子
- jpg,gif和png三种格式图片的说明
- eclipse 快捷键
- Android动画开发——Animation动画效果
- 代理模式 Proxy.newProxyInstance
- 栈空间分配
- 特征选择算法之开方检验
- 特殊字符的URL编码的比较(JS VS Python)
- spring学习笔记