映射一对一
来源:互联网 发布:usb端口禁用软件 编辑:程序博客网 时间:2024/05/16 19:48
Address 外键
package cn.itcast.one2onefk;public class Address {private Integer id;private String city;private String country;private Company company;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}public Company getCompany() {return company;}public void setCompany(Company company) {this.company = company;}}Company
package cn.itcast.one2onefk;public class Company {private Integer id;private String name;private Address address;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 Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}}
Address.hbm.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="cn.itcast.one2onefk.Address" table="address"> <id name="id" type="integer"> <column name="id"></column> <generator class="increment"/> </id> <property name="city" type="string"> <column name="city"></column> </property> <property name="country" type="string"> <column name="country"></column> </property> <!-- one-to-one:用于映射一对一 该元素使用 property-ref(可以不加)属性指定使用被关联实体主键 以外的字段作为关联字段 如何获取company属性的值 通过address表的主键(company表的外键)获取 --> <one-to-one name="company" property-ref="address"></one-to-one></class></hibernate-mapping>
Company.hbm.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="cn.itcast.one2onefk.Company" table="company"> <id name="id" type="integer"> <column name="id"></column> <generator class="increment"/> </id> <property name="name" type="string"> <column name="name"></column> </property> <!-- 正常是 多个公司对应一个地址 在需要存放外键的一段 增加 many-to-one many-to-one:映射多对一关联 * address:带映射的持久化类的属性 * column:对应的表的字段,address属性的值通过company表的外键到address表中查的 * unique="true":唯一的,company表的外键列的值是唯一的,把多对一改为一对一 --> <many-to-one name="address" column="addressId" unique="true" not-null="true"></many-to-one></class></hibernate-mapping>
App
package cn.itcast.one2onefk;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;public class App {static SessionFactory sf = null;static {Configuration config = new Configuration();config.configure("cn/itcast/one2onefk/hibernate.cfg.xml"); config.addClass(Company.class); config.addClass(Address.class);sf = config.buildSessionFactory();}@Testpublic void insert(){Session s=sf.openSession();Transaction t=s.beginTransaction();Company c=new Company();c.setName("传智博客");Address address=new Address();address.setCity("北京");address.setCountry("中国");c.setAddress(address);address.setCompany(c);//先保存地址 在保存公司 s.save(address);s.save(c);t.commit();s.close();}}
主键
Address。hbm.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="cn.itcast.one2onepk.Address" table="address"> <id name="id" type="integer"> <column name="id"></column> <!-- class:表示该表主键的值是参照其他表的主键 <param name="property">company</param> 表示 property表示该值参照其他的属性值 company:参照company表的主键 --> <generator class="foreign"> <param name="property">company</param> </generator> </id> <property name="city" type="string"> <column name="city"></column> </property> <property name="country" type="string"> <column name="country"></column> </property> <!-- constrained:true给表的主键增加外键约束 --> <one-to-one name="company" constrained="true"></one-to-one></class></hibernate-mapping>Company.hbm.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="cn.itcast.one2onepk.Company" table="company"> <id name="id" type="integer"> <column name="id"></column> <generator class="identity"/> </id> <property name="name" type="string"> <column name="name"></column> </property> <!-- 映射1对1 --> <one-to-one name="address"></one-to-one></class></hibernate-mapping>
- 一对一映射
- 映射 一对一
- 映射一对一
- 一对一映射
- 一对一映射
- 一对一映射
- JPA关联映射 - 一对一映射
- hibernate映射关系一对一映射
- hibernate映射之一对一映射
- hibernate一对一映射例子
- hibernate一对一关联映射--
- Hibernate映射 一对一例
- 映射一对一关联
- hibernate一对一关联映射
- hibernate一对一映射
- hibernate一对一关联映射
- 一对一关系映射
- Hibernate关系映射一对一
- Map Reduce – the Free Lunch is not over?Meng Yan ( 孟岩 )
- win2008r2下apache2.2.22 php 5.2.17出错的处理
- CentOS中vsftp安装与配置
- NSDictionary和NSMutableDictionary
- 反编译apk,提取资源文件
- 映射一对一
- inline函数
- Google Objective-C Style Guide
- 写给四年前刚开始编程的自己
- 使用facebook flashcache + ssd硬盘提升glusterfs的小文件读写性能
- svn迁移到Git
- HDU2084:数塔
- 对测试认识的三个阶段
- 指针