Hibernate双向N-N关联

来源:互联网 发布:基恩士plc软件下载 编辑:程序博客网 时间:2024/06/16 07:22
package com.chaohua.Bean;

public class Address {
    private Integer addressId;
    private String addressDetail;
    public Address(){  }
    public Address(String addressDetail ){
    this.addressDetail=addressDetail;
   

    }

        public Integer getAddressId() {
return addressId;
}
public void setAddressId(Integer addressId) {
this.addressId = addressId;
}

public String getAddressDetail() {
return addressDetail;
}
public void setAddressDetail(String addressDetail) {
this.addressDetail = addressDetail;
}

}

相应配置文件如下

<?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 5, 2014 11:04:27 AM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.chaohua.Bean.Address" table="ADDRESS">
        <id name="addressId" type="java.lang.Integer">
            <column name="ADDRESSID" />
            <generator class="increment" />
        </id>
        <property name="addressDetail" type="java.lang.String">
            <column name="ADDRESSDETAIL" />
        </property>
    </class>
</hibernate-mapping>


package com.chaohua.Bean;

import java.util.HashSet;
import java.util.Set;

public class Person {
    private Integer id;
   
private double age;
    private String name;
    private Set<Address > address = new HashSet<Address>();
    
    public Set<Address> getAddress() {
return address;
}
public void setAddress(Set<Address> address) {
this.address = address;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
    public double getAge() {
return age;
}
public void setAge(double age) {
this.age = age;
}


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

配置文件如下

<?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 5, 2014 11:03:10 AM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.chaohua.Bean.Person" table="PERSON1">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="increment" />
        </id>
        <property name="age" type="double">
            <column name="AGE" />
        </property>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <set name="address" table="ADDRESS" >
            <key>
                <column name="ID" />
            </key>
            <one-to-many class="com.chaohua.Bean.Address" />
        </set>
    </class>
</hibernate-mapping>

包含主函数的测试类

package com.chaohua.Test;

import com.chaohua.Bean.Address;
import com.chaohua.Bean.Person;
import org.hibernate.Session;
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
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 person = new Person();
Address address = new Address("ss");
session.save(address);
person.setName("sss");
person.setAge(20);
person.getAddress().add(address);


session.save(person);
session.persist(person);
tx.commit();
session.close();
sf.close();

}
}

总配置文件

<?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">CHAO</property>  
        <property name="connection.password">Chao5855</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/chaohua/Bean/Person.hbm.xml"/>  
        <mapping resource="com/chaohua/Bean/Address.hbm.xml"/> 
      
    </session-factory>  
</hibernate-configuration>  


0 0
原创粉丝点击