默认cascade属性为true;
核心代码:
1.主键生成策略:
<!-- Person的主键来源于idCard, 也就是共享idCard主键 -->
<generator class="foreign">
<param name="property">idCard</param>
</generator>
2.one-to-one配置
<!-- one-to-one标签的含义,指示hibernate怎样加载它的关联对象,默认根据主键加载
constrained="true",表明当前主键上存在一个约束,person的主键作为外键参照了idcard
-->
<one-to-one name="idCard" constrained="true" />
一:实体类:
package com.tao.hibernate.one2one;
public class Person {
private Integer id;
private String name;
private IdCard idCard;
public Person() {
super();
}
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 IdCard getIdCard() {
return idCard;
}
public void setIdCard(IdCard idCard) {
this.idCard = idCard;
}
}
package com.tao.hibernate.one2one;
public class IdCard {
private Integer id;
private String cardNo;
private Person person;
public IdCard() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
二:映射文件:
<?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 package="com.tao.hibernate.one2one">
<class name="Person" table="t_Person">
<id name="id" column="id" type="integer">
<!-- Person的主键来源于idCard, 也就是共享idCard主键 -->
<generator class="foreign">
<param name="property">idCard</param>
</generator>
</id>
<property name="name" column="name" />
<!-- one-to-one标签的含义,指示hibernate怎样加载它的关联对象,默认根据主键加载
constrained="true",表明当前主键上存在一个约束,person的主键作为外键参照了idcard
-->
<one-to-one name="idCard" constrained="true" />
</class>
</hibernate-mapping>
<?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 package="com.tao.hibernate.one2one">
<class name="IdCard" table="t_IdCard">
<id name="id" column="id" type="integer">
<generator class="native" />
</id>
<property name="cardNo" column="cardNo" />
<one-to-one name="person" fetch="select"/>
</class>
</hibernate-mapping>
三:测试类
package com.tao.hibernate.one2one;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import com.tao.hibernate.HibernateUtils;
public class TestMain {
@Test
public void testSave() {
Session session = HibernateUtils.getFactory().openSession();
IdCard idCard = new IdCard();
idCard.setCardNo("100");
Person person = new Person();
person.setName("Tao");
person.setIdCard(idCard);
Transaction ts = session.beginTransaction();
ts.begin();
session.save(person);
ts.commit();
}
@Test
public void testLoad() {
Session session = HibernateUtils.getFactory().openSession();
Person person = (Person) session.load(Person.class, 2);
System.out.println(person.getName());
System.out.println(person.getIdCard().getCardNo());
}
@Test
public void testLoad2() {
Session session = HibernateUtils.getFactory().openSession();
IdCard idCard = (IdCard) session.load(IdCard.class, 2);
System.out.println(idCard.getCardNo());
System.out.println(idCard.getPerson().getName());
}
}
分享到:
相关推荐
第03章电子商务安全.pptx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
电子商务物流第二版教案第5章.ppt
电子商务理论知识纲要与重点.ppt
字符串转数字(c++)
抖音小红书快手B站截流获客引流工具仓库安装更新包
社保数据采集软件用户手册.doc
文献链接:https://www.sciencedirect.com/science/article/pii/S2352484725001349 Tips: 代码运行平台为 matlab+GAMS, 使用Cplex求解
内容概要:本文详细介绍了MIG熔滴过渡与熔池耦合的二维数值模拟方法及其在焊接技术中的应用。主要内容涵盖基础知识介绍、脉冲电流电压的加入与一脉一滴的实现机制、UDF建模与设置教程、Fluent焊接相关内容的应用。通过精确控制脉冲电流电压,实现了每脉冲对应一个熔滴的效果,提高了焊接质量和效率。此外,还提供了详细的建模与设置教程,帮助读者掌握从理论到实践的完整流程。 适合人群:从事焊接技术研究的专业人士、工程技术人员、高校相关专业师生。 使用场景及目标:适用于希望深入了解MIG熔滴过渡与熔池耦合机理的研究人员和技术人员,旨在提升焊接质量与效率,优化焊接工艺。 其他说明:文章不仅提供理论知识,还包括具体的代码分析与实战演练,使读者能够将所学知识应用于实际焊接操作中。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
第四章电子商务物流技术.ppt
内容概要:本文详细介绍了西门子1200多轴伺服步进FB块程序的特点和应用。该程序由两个FB组成,分别采用SCL和梯形图编写,支持PTO脉冲和PN网口模式,适用于多种伺服和步进电机。文中提供了详细的中文注释和关键代码片段,展示了程序的兼容性和灵活性,并分享了多个成功的实际应用案例。此外,还讨论了如何根据具体硬件环境和控制需求对程序进行适当调整,以满足复杂控制需求。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要理解和应用伺服步进电机控制系统的专业人士。 使用场景及目标:① 学习并掌握西门子1200多轴伺服步进FB块程序的设计和实现;② 在实际项目中应用该程序,实现对不同品牌伺服和步进电机的精确控制;③ 提升对工业自动化系统中电机控制的理解和操作能力。 其他说明:本文提供的FB块程序已在多个实际项目中得到验证,确保其稳定性和可靠性。同时,详细的中文注释有助于快速理解程序逻辑,降低调试难度。
免费版的图片处理工具软件PS,可以对图片进行抠图,精修,P图等。
本MATLAB程序用于仿真两种非线性调频(NLFM)信号的生成过程。在生成信号时,分别采用了Hamming窗和四倍余弦窗进行加权处理。随后,对生成的NLFM信号进行了匹配滤波操作。此外,还对信号进行了32倍插值处理以观察其波形特性。通过仿真结果可以发现,NLFM信号无需进行加权处理,直接进行匹配滤波即可获得较低的旁瓣电平。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。