Annotation方法
Tables structure
'CREATE TABLE `address` (
`addressID` int(11) NOT NULL,
`addressName` varchar(45) NOT NULL,
PRIMARY KEY (`addressID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
'CREATE TABLE `person` (
`id` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
`addressID` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
Person类
package hibernate.entities; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; @Entity public class Person { private int id; private String name; private Address address; @Id @GeneratedValue 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; } @OneToOne @JoinColumn(name="addressID") public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
Address类
package hibernate.entities; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; @Entity public class Address { private int addressID; private String addressName; private Person person; @Id @GeneratedValue public int getAddressID() { return addressID; } public void setAddressID(int addressID) { this.addressID = addressID; } public String getAddressName() { return addressName; } public void setAddressName(String addressName) { this.addressName = addressName; } @OneToOne(mappedBy="address") public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }
XML配置方法
husband表
'CREATE TABLE `husband` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, `wifeID` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_UNIQUE` (`id`), KEY `FK_7hkddxc8rvd25jlebv327ewj8` (`wifeID`), CONSTRAINT `FK_7hkddxc8rvd25jlebv327ewj8` FOREIGN KEY (`wifeID`) REFERENCES `wife` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8'
wife表
'CREATE TABLE `wife` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8'
Husband类
package hibernate.entities; public class Husband { private int id; private String name; private Wife wife; 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 Wife getWife() { return wife; } public void setWife(Wife wife) { this.wife = wife; } }
Wife类
package hibernate.entities; public class Wife { private int id; private String 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; } }
Husband.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="hibernate.entities"> <class name="Husband" table="husband"> <id name="id" column="id"> <generator class="native"></generator> </id> <property name="name"></property> <many-to-one name="wife" column="wifeID" unique="true"></many-to-one> </class> </hibernate-mapping>
Wife.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="hibernate.entities"> <class name="Wife" table="wife"> <id name="id" column="id"> <generator class="native"></generator> </id> <property name="name" column="name"/> <one-to-one name="husband" property-ref="wife"></one-to-one> </class> </hibernate-mapping>
相关推荐
Hibernate双向一对一关联映射(注解版)
Hibernate双向一对一关联映射(XML版)
这是本人观看传智的视频,整理出来的完整的源码,及学习步骤,学了总会忘记,方便今后复习。代码可以直接运行,jar包完整,资源较大,分几块分享(1-5,按照学习步骤写的)。
Hibernate的映射策略:一对一双向关联映射,有所有的测试用例,用以证明从任何一端都可以加载另一端信息。
NULL 博文链接:https://1028826685.iteye.com/blog/1525683
hibernate外键实现一对一双向关联关系源码
这里包含了多对一双向关联关系实现源码,希望对你有用。
hibernate双向一对多关联映射(注解版)
博文链接:https://shaqiang32.iteye.com/blog/201312
博文链接:https://shaqiang32.iteye.com/blog/201309
Hibernate一对多双向自身关联demo代码
Hibernate 一对一外键单向...Hibernate 一对一外键双向关联 Hibernate 一对一主键双向关联 Hibernate 一对一连接表双向关联 Hibernate 一对多外键双向关联 Hibernate 一对多连接表双向关联 Hibernate 多对多双向关联
NULL 博文链接:https://dreamzhong.iteye.com/blog/1200915
hibernate双向一对多关联映射(XML)
NULL 博文链接:https://lijunabc.iteye.com/blog/438426
12_JPA详解_JPA中的一对一双向关联.zip 12_JPA详解_JPA中的一对一双向关联.zip
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联...├─ 一对一外键双向关联 ├─ 一对一主键双向关联 ├─ 一对一连接表双向关联 ├─ 一对多外键双向关联 ├─ 一对多连接表双向关联 └─ 多对多双向关联
Hibernate 一对一唯一外键关联映射详解 Hibernate是一种流行的Java持久层框架,提供了多种关联映射方式,其中一对一唯一外键关联映射是一种常见的关联方式。在本文中,我们将详细介绍Hibernate一对一唯一外键关联...
NULL 博文链接:https://yuanleilei628.iteye.com/blog/2209753
NULL 博文链接:https://huihai.iteye.com/blog/1243558