`
逆风的香1314
  • 浏览: 1391960 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate相关总结

阅读更多

 1.hibernate关联关系总结:

查看"hibernate 多对多影射 .rar"文件中的内容.

 

 

 

一个Person可以参加多个Event,一个Event有多个Person参加。
映射文件如下:

<!----><!-- Person.hbm.xml -->
<
hibernate-mapping package="events">
  
<class name="Person" table="person">
      
<id name="id" column="person_id">
          
<generator class="native"/>
      
</id>
      
<property name="age" length="0"/>
      
<property name="firstname"/>
      
<property name="lastname"/>
      
<set name="events" table="person_event">
          
<key column="person_id"/>
          
<many-to-many column="event_id" class="events.Event"/>
      
</set>
  
</class>
</hibernate-mapping>


 

<!----><!-- Event.hbm.xml -->
<
hibernate-mapping>
  
<class name="events.Event" table="events">
      
<id name="id" column="event_id">
            
<generator class="native"/>
      
</id>
      
<property name="date" column="events_date" type="timestamp"/>
      
<property name="title" column="events_title"/>
      
<set name="participants" table="person_event" inverse="true">
          
<key column="event_id"/>
          
<many-to-many column="person_id" class="events.Person"/>
      
</set>
  
</class>
</hibernate-mapping>


inverse=true的含义: 由双向关联另一方维护该关联,己方不维护该关联(只能进行查询操作)。在上述代码中,由Person方维护该<many-to-many>关系,示例代码如下(以向Person参与的Event中加入新的Event为例):

<!---->        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Person p 
= (Person) session.load(Person.class, personId);
        Event e 
= (Event) session.load(Event.class, eventId);
        p.getEvents().add(e);//执行该代码时,hibernate会向中间表 person_event中插入person_id和event_id记录,如果换成e.getParticipants().add(p)的话,该代码将不会被执行,即hibernate不会向表person_event中插入记录。
        session.getTransaction().commit();


要注意的一点:在双向关联的关系中,映射的column(和table)的值要一致(即要用相同的表名和列名),不然设置为inverse="true"的这方将失去这个双向关系,而变成了一个单向关联。

 

 

3.many-to-one中的insert="false"   update="false"解释:

insert="false"   update="false"  是讲生成sql语句的时候,是不是对该属性进行操作   
 假如,在name属性上设置了insert="false",而没有设置update="false",则,则生成的插入语句中没有该属性,但更新语句上有,因为默认是true的

 

4.cascade的解释:

cascade
有五个选项
分别是: all ,delete ,none,save-update,delete-orphan ;
        all : 所有情况下均进行关联操作。
        none:所有情况下均不进行关联操作。这是默认值。
        save-update:在执行save/update/saveOrUpdate时进行关联操作。
        delete:在执行delete时进行关联操作。
        delete-orphan: 当save/update/saveOrUpdate时,相当于save-update ;当删除操作时,相当于delete ;
all的意思是save-update + delete
all-delete-orphan
的意思是当对象图中产生孤儿节点时,在数据库中删除该节点

分享到:
评论

相关推荐

    HIbernate关联关系总结

    大致总结了一下Hibernate关联关系。提供相关的一些例子进行测试。

    Hibernate学习总结

    本文档是我看hibernate相关资料的一下总结

    hibernate总结

    hibernate通过注解或xml文件配置连接数据库的相关配置总结。

    Hibernate+中文文档

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    hibernate,struts,spring面试题总结.doc

    Struts, Spring, Hibernate相关面试题的总结,各个框架使用原理

    hibernate的三种状态及其相互转换

    这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择

    hibernate Search总结

    在工作中的总结及知识的分享过程,希望可以带给大家有帮助的信息

    hibernate3.2中文文档(chm格式)

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    HibernateAPI中文版.chm

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    Hibernate总结(三)

    NULL 博文链接:https://feiqiang.iteye.com/blog/695837

    Hibernate中文详细学习文档

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    Hibernate 中文 html 帮助文档

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    Struts+Spring+Hibernate整合详解与典型案例源代码.

    搞定J2EE 技术全面:涵盖Java Web开发的主流技术和主流框架;...示例丰富:提供了大量高质量和从实际项目总结的示例,有较高的复用性; 项目经典:通过项目的经典开发流程来讲解项目,并对代码进行了详细解释。

    hibernate 体系结构与配置 参考文档(html)

    上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 ...

    hibernate+中文api

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二...

    Hibernate入门文档

    hibernate中uuid和native的相关总结 Hibernate get与load的区别 hibernate二级缓存中list和iterator的用法 Hibernate中的对象有三种状态: lock和update区别 save 和update区别 update 和saveOrUpdate区别

    hibernate学习笔记

    hibernate学习笔记,总结hibernate的基础和重点,并有实例介绍和相关概念图文介绍

    网上书店(struts+hibernate+css+mysql).zip

    这是一套非常有用的网上书店(struts+hibernate+css+mysql)项目,大家可自行下载开发,里面有毕业设计相关论文,以及完整代码,大家可以参考学习得到自己的认知体会,总结学习方法,完善自己的项目

    《冬眠的力量-Hibernate 持久化技术详解》

    《冬眠的力量-Hibernate 持久化技术详解》这本书是本人多年基于Hibernate的系统架构设计以及系统开发经验总结和对Hibernate原理的研究成果。 本书成书于2007年8月,一直作为本人目前就职公司的内部技术手册参考,...

Global site tag (gtag.js) - Google Analytics