有连接表的双向1-1关联

来源:互联网 发布:java json对象转换map 编辑:程序博客网 时间:2024/06/05 20:41


Person.java文件

package com.wang.bean;
import java.io.Serializable;
public class Person implements Serializable {
private Integer age;
private String name;
private Integer id;
private Address address;


public Address getAddress() {
return address;
}


public void setAddress(Address address) {
this.address = address;
}


public Integer getAge() {
return age;
}


public void setAge(Integer age) {
this.age = age;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public Integer getId() {
return id;
}


public void setId(Integer id) {
this.id = id;
}


}


Address.java文件

package com.wang.bean;
public class Address {
private Integer id;
private String AddressDatil;
private Person person;


public Address() {
}


public Person getPerson() {
return person;
}


public void setPerson(Person person) {
this.person = person;
}


public Integer getId() {
return id;
}


public void setId(Integer id) {
this.id = id;
}


public String getAddressDatil() {
return AddressDatil;
}


public void setAddressDatil(String addressDatil) {
AddressDatil = addressDatil;
}


public Address(String AddressDatil) {
this.AddressDatil = AddressDatil;
}
}

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">
<!-- Generated May 4, 2014 9:01:21 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.wang.bean.Person" table="PERSON_INF">
        <id name="id" type="java.lang.Integer">
            <column name="PERSON_ID" />
            <generator class="increment"></generator>
        </id>
        <property name="age" type="java.lang.Integer">
            <column name="AGE" />
        </property>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
<join table="person_address" optional="true">
<key column="person_id" unique="true"/>
<many-to-one name="address" class="com.wang.bean.Address" unique="true" column="address_id"/>
</join>
    </class>
</hibernate-mapping>

Address.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">
<!-- Generated May 4, 2014 9:01:21 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.wang.bean.Address" table="ADDRESS_INF">
        <id name="id" type="java.lang.Integer">
            <column name="ADDRESS_ID" />
          <generator class="increment"></generator>
        </id>
        <property name="AddressDatil" type="java.lang.String">
            <column name="ADDRESSDATIL" />
        </property>
        <join table="person_address" inverse="true">
        <key column="address_id" unique="true"/>
        <many-to-one name="person" column="person_id" class="com.wang.bean.Person" unique="true" />
        </join>
        
    </class>
</hibernate-mapping>

hibernate.cfg.xml文件

<?xml version='1.0' encoding='utf-8'?>  
<!DOCTYPE hibernate-configuration PUBLIC  
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">GUO</property>
<property name="connection.password">930603</property>


<property name="connection.pool_size">2</property>
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create </property>
<mapping resource="com/wang/bean/Person.hbm.xml" />
<mapping resource="com/wang/bean/Address.hbm.xml" />
</session-factory>
</hibernate-configuration>  

测试文件HibernateTest.java

package com.wang.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.wang.bean.Address;
import com.wang.bean.Person;

public class HibernateTest {
public static void main(String[] args) {
Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();

Person person1 = new Person();
Address address1 = new Address("吉林");
person1.setAge(22);
person1.setName("王智国");
session.save(person1);
person1.setAddress(address1);
session.persist(address1);

Person person2 = new Person();
Address address2 = new Address("北京");
person2.setAge(22);
person2.setName("徐宏伟");
session.save(person2);
person2.setAddress(address2);
session.persist(address2);


try {
tx.commit();
session.close();
sf.close();
} catch (Exception e) {
tx.rollback();
} finally {
session.close();
sf.close();
}
}
}

0 0
原创粉丝点击