例子:人与身份证的一对一
人实体类
package entity; /* * Person 实体类 * */ public class Person { private int id;//编号 private String name;//姓名 private IdCard idCard; public Person() { } public Person(String name) { this.name = name; } 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 IdCard getIdCard() { return idCard; } public void setIdCard(IdCard idCard) { this.idCard = idCard; } }
人实体类的XML配置
<?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="entity.Person"> <id name="id"> <generator class="sequence"> <param name="sequence">seq_person</param> </generator> </id> <property name="name" /> <one-to-one name="idCard" class="entity.IdCard" /> </class> </hibernate-mapping>
身份证实体类
package entity; /* * Person 实体类 * */ public class IdCard { private int id;//编号 private String name;//姓名 private Person person; public IdCard(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public IdCard() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
身份证实体类的XML配置
<?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="entity.IdCard"> <id name="id"> <generator class="foreign"> <param name="property">person</param> </generator> </id> <property name="name" /> <one-to-one name="person" class="entity.Person" constrained="true"/> </class> </hibernate-mapping>
使用hibernate.cfg.xml映射其的XML路径
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库URL --> <property name="connection.url"> jdbc:oracle:thin:@localhost:1521:oracle11 </property> <!-- 数据库用户 --> <property name="connection.username">A_hr</property> <!-- 数据库用户密码 --> <property name="connection.password">123456</property> <!-- 数据库 JDBC 驱动 --> <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver </property> <!-- 是否将运行期生成的 SQL 输出到日志以供调试 --> <property name="show_sql">true</property> <!-- 每个数据库都有其对应的 Dialect 以匹配其平台特征 --> <property name="dialect"> org.hibernate.dialect.Oracle10gDialect </property> <property name="hbm2ddl.auto">create</property> <mapping resource="entity/IdCard.hbm.xml" /> <mapping resource="entity/Person.hbm.xml" /> </session-factory> </hibernate-configuration>
进行数据的操作
package test; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import entity.IdCard; import entity.Person; import util.HibernateSessionFactory; public class OneToOneTest { public static void main(String[] args) { oneToOne(); } private static void oneToOne() { Session session = HibernateSessionFactory.getSession(); Transaction tx = null; Person person = new Person("李炎恢"); IdCard idCard = new IdCard("123456"); try { person.setIdCard(idCard); idCard.setPerson(person); tx = session.beginTransaction(); session.save(person); session.save(idCard); tx.commit(); System.out.println("保存成功!!!"); } catch (HibernateException e) { e.printStackTrace(); tx.rollback(); }finally{ HibernateSessionFactory.closeSession(); } } }
效果图:
在数据库查询这两条语句
select id, name from person; select id, name from idcard
相关推荐
hibernate one to one一对一关系示例,包括数据库备份文件。
里面是hibernate 一对一的例子,里面有数据库,是用oracle连接的,把脚本生成一下就可以了.
Myeclipse 开发的Hibernate 一对一实例。
hibernate_onetoone.part4.rar
hibernate_onetoone.part5.rar
第三部分hibernate_onetoone.part3共5部分 。全部下载需要10分
hibernate_onetoone.part2.rar <br>共5部分。 需要全部才能解压
一对一 使用 maven Hibernate onetoone 示例
hibernate对象三状态及OneToOne&OneToMany&ManyToMany讲解,代码示例,数据库示例!非常全面
NULL 博文链接:https://chen-rojer-gmail-com.iteye.com/blog/694722
NULL 博文链接:https://selvemen.iteye.com/blog/459102
demo代码; 博客地址:http://blog.csdn.net/smilefyx/article/details/48951933
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1171227
onetoone fk 一对一外键关联带数据库。 onetoone fk 一对一外键关联带数据库。 onetoone fk 一对一外键关联带数据库。
这种策略支持双向的一对多关联,但不支持 IDENTIFY 生成器策略,因为ID必须在多个表间共享。一旦使用就不能使用AUTO和IDENTIFY生成器。 每个类层次结构一张表 @Entity @Inheritance(strategy=InheritanceType....
该文件为我的博客“Mybatis注解方式实现一对一,一对多的关联查询”(链接:https://blog.csdn.net/weixin_44003141/article/details/85686694)的源代码,欢迎下载查看。
oneToMany-OneToOne-search,xml方式、注解方式实现一对一查询、一对多查询,、注解方式实现一对一查询、一对多查询、注解方式实现一对一查询、一对多查询
* @OneToMany 设置一对多关联。cascade属性指定关联级别,参考@OneToOne中的说明。fetch指定是否延迟加载,值为FetchType.LAZY表示延迟,为FetchType.EAGER表示立即加载 * 方法一 使用这种配置,在为“一端”添加“多...
使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况:(1).关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束),(3)...
Hibernate one to one 源码!有注释