关联映射
含义:将对象模型之间的关系 映射至数据库关系模型 。
1.配置
市 多方 city_id city_name prov_id
省 一方 prov_id prov_name
多对一 :可以从多方导航至 一方
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.it.bean">
<class name="City" table="city">
<id name="city_id" column="city_id">
<!-- 主键生成策略 -->
<generator class="assigned"></generator>
</id>
<property name="city_name" column="city_name "></property>
<!--多对一关联映射-->
<property name="prov" column="prov _id" ></property>
/class>
</hibernate-mapping>
一对多 :可以从一方导航至 多方
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.it.bean">
<class name="Pov" table="prov">
<id name="prov_id" column="prov_id ">
<!-- 主键生成策略 -->
<generator class="assigned"></generator>
</id>
<property name="prov_name" column="prov_name "></property>
<!--一对多关联映射-->
<set name ="citys" table="city" inverse="true">
<key cloumn="prov_id"></key> //查询外键
<one-to-many class="com.it.bean.City"/>
</set>
</class>
</hibernate-mapping>
注意 :po --构造器 扩展
关联操作:
a.务必 保证 对象模型 完成。
b.保证 关联对象 处于 持久态。
public class Text1{
public static void main(String[] args){
//创建SessionFactory
SessionFavtory sessionFactory = null;
//创建Session
Session session = null;
//事务
Transaction tx = null;
try{
sessionFactory = new Configuration.configure().buildSessionFactory();
session = sessionFactory.getCurrentSession();
//开启事务
tx = sesison.beginTransaction();
//多对一测试
/*
City city = (City)sesison.get(City.class,"1301") ;
Hibernate,initialize(city.getProv()); //代理对象
system.out.println("----");
system.out.println(city.getProv().getProv_name());
*/
//一对多测试
Prov prov= (Prov)sesison.get(Prov.class,"13") ;
system.out.println("----");
for(Cty c:p.getCitys()){
system.out.println(c.get City_name);
//提交
tx.commit();
}catch(Exception e){
e.printStackTrace();
//事务回滚
tx.rollback();
}
}
}
2.性能
inverse (true) 配置在一方的set中, 可以让 hibernate 放弃 一方到多方的从对象模型到关系模型的维护
cascade="" 多方 级联
级联的什么操作
级联时是否 影响对象模型