`

[hibernate备忘]

阅读更多

1、hibernate搭建在eclipse中最好的开发环境

2、hibernate的关联关系映射 基本原则是尽量一个表对应一个model ,继承的除外,特别是 用来进行多对多关联的表

     多对多 拆成2个一对多 代码要好写很多

http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html

 

(1)一对多

 

    /**
     * @hibernate.set lazy = "true" readonly = "true" cascade = "save-update" inverse = "true"
     * @hibernate.collection-key column = "c_role_id"
     * @hibernate.collection-one-to-many class ="com.rocky.project.model.relation.UserRoleR"
     */    
 
	/**
	 * @hibernate.many-to-one column = "c_resource_id" cascade="none"	 not-null = "true"
	 */

 

(2)一对一

	/**
	 * @hibernate.one-to-one property-ref = "user"   not-null="false"
	 */	
 

  (3)几种常用基本类型(不用原始类型)

 

	/**
	 * @hibernate.property column = "c_keyword" type = "string" 
	 *                 
	 * 
	 * @return creator
	 */
	public String getKeyword() {
		return keyword;
	}
 
	/**
	 * @hibernate.property column = "c_showindex" type = "integer" 
	 * 
	 * @return creator
	 */
 
	/**
	 * @hibernate.property column = "createtime" type = "java.util.Date"
	 *                   
	 * 
	 * @return the create time.
	 */

 

	/**
	 * @hibernate.property column = "isdeleted" type = "boolean" 
	 * @return boolean
	 */
 
	/**
	 * @hibernate.id column="id" unsaved-value="-1" generator-class="native"
	 *               type="java.lang.Long"
	 * 
	 * @return id
	 */
 
	/**
	 * @return Returns the description.
	 * @hibernate.property column="description" length="5000" type="string"
	 */

  3、many-to-one  one-to-many many-to-many one-to-one inverse casecade 重点掌握

       先掌握单向关联的配置再掌握双向关联的配置

 

 

 

hibernate中的inverse和casecade
hibernate中的inverse与cascade是个让人容易产生误解的属性,今天我终于有了正确的认识,总体上说inverse是指定哪个表作为维护端,cascade则是在操作某个表时,另一个表如何操作。以Father与Son为例,它们之间为一对多关系。
一、inverse属性
1、如果是单向一对多
   在set元素那里设置inverse为true,则插入father时(且调用father.setSons(sons),sons 是个set),son没有插入,如果设置inverse为false则插入father时(且调用father.setSons(sons),sons 是个set),则同时插入son。
2、如果是单向多对一
   此种配置没有inverse属性,设置cascade为合适值即可实现级联操作。可等价于一对多中的inverse=false
3、双向一对多(与双向多对一是一样的)
   set的inverse默认为false,当在一的一端的set中设置inverse为false时(many-to-one没有inverse属性,实际上就相当于many-to-one的"inverse"恒为false),调用session.save(),则将有2条update语句,实际上2条语句是一样的。此种设置方法是低效率的,因为执行来了2次实际上是一样的sql语句。通常将set中的inverse设置为true,这样当插入或更新时,只执行一次update语句。在双向一对多时,set的inverse设置为true,则须注意:通过father.setSons(sons)是无法保证son插入的,而通过son.setFather(father)可以保证father插入,因而在程序中最后同时设置father.setSons(sons),son.setFather(father).
二、cascade属性
	cascade表示某一端进行某种操作时,另一端的关联操作。cascade属性只有在inverse属性设置为false才有意义,因为inverse为true表示不维护关系,即外键为null,如果此时对某一端执行某种操作,hibernate无法找到相应的另一端,自然也就无法对另一端执行相应操作。
 
分享到:
评论

相关推荐

    Hibernate 备忘

    【标题】:“Hibernate 备忘” 【描述】:在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的方式来处理数据库事务。这篇备忘录主要关注Hibernate...

    javaMD5加密及登录验证(备忘) - Hibernate - Java - ITeye论坛.mht

    javaMD5加密及登录验证(备忘) - Hibernate - Java - ITeye论坛.mhtjavaMD5加密及登录验证(备忘) - Hibernate - Java - ITeye论坛.mhtjavaMD5加密及登录验证(备忘

    Spring2.5.3+Struts2.0.11.1+Hibernate3.2.6整合备忘 (转载)

    Spring2.5.3+Struts2.0.11.1+Hibernate3.2.6整合备忘 (转载)

    struts+spring+hibernate3+webligic812环境配置备忘录

    以下是基于标题“struts+spring+hibernate3+webligic812环境配置备忘录”的详细知识点解析: ### 一、环境搭建与配置 #### 1. WebLogic Server安装与配置 - **安装过程**:首先,下载WebLogic Server 8.1.2版本的...

    SSHF备忘之依赖包(struts2+spring2.5+hibernate+freemarker)

    在Java Web开发中,SSHF(Struts2、Spring、Hibernate和FreeMarker)是一个常见的技术栈,用于构建高效、可维护的MVC应用程序。这些框架的整合能够提供强大的功能,如模型-视图-控制器架构、依赖注入、持久化管理和...

    s2sh框架实例——个人备忘录系统源码

    【标题】"s2sh框架实例——个人备忘录系统源码" 提供了一个学习和研究Web开发的宝贵资源,特别适合对Java Web技术感兴趣的初学者。S2SH是Struts2、Spring和Hibernate三个开源框架的组合,是Java领域广泛应用的MVC...

    java ssm备忘录管理系统毕业论文.docx

    Java SSM备忘录管理系统毕业论文 本文主要介绍了基于 Java SSM 框架和 MySQL 数据库的备忘录管理系统的设计与实现。该系统旨在解决传统备忘录管理中的问题,实现信息化和网络化,提高备忘录管理的效率和经济性。 ...

    大学 毕业设计 项目实训 个人备忘录系统(java SSH网站源代码)+JSP漂亮的界面控件.zip

    【标题】中的“大学毕业设计 项目实训 个人备忘录系统(java SSH网站源代码)”表明这是一个基于Java的SSH框架实现的个人备忘录系统,适用于大学生进行毕业设计或项目实训。SSH是Struts2、Spring和Hibernate三个开源...

    java记事簿管理系统_备忘录管理系统_通讯录_记账本-源码+数据库+论文or文档.zip

    9. **数据持久化**:除了使用数据库存储数据外,系统可能还使用了ORM(Object-Relational Mapping)框架如Hibernate或MyBatis,以简化数据库操作,实现对象与数据库表之间的映射。 10. **文档和论文**:压缩包中...

    备忘录

    【标题】:“备忘录”涉及的技术点涵盖了图形用户界面(GUI)的元素设计、程序关闭的优雅实现、数据库管理和系统事件监听等多个方面。 【图形按钮】是用户界面设计中的重要组成部分,它允许用户通过点击来执行特定...

    基于Struts和Hibernate的医院药品管理系统毕业设计论文.docx

    系统的主要功能包括药品管理、类别管理、进货管理、出货管理、系统管理、备忘添加等。 在该系统的设计和实现过程中,我们首先对系统的可行性进行了分析,接着进行了需求分析和概要设计。然后,我们对系统的数据库表...

    JSF+richfaces+hibernate整合开发源码--个人日志系统

    本系统使用jsf,richfaces,hibernate整合开发,完整的系统,个人日志系统,可以写日志,做备忘,行程,学习笔记等,覆盖了jsf,richfaces,hiberante等开发过程中的常用功能实现.适合新手的学习参考和学习.

    STRUTS备忘录、

    Struts可以与Hibernate、iBatis等持久层框架集成,Spring框架可以用于依赖注入,提高应用的可测试性和解耦。 总的来说,Struts作为一个成熟的MVC框架,为Java Web开发提供了强大且灵活的工具,帮助开发者构建出高效...

    Spring 备忘 (一)

    这个备忘系列将探讨 Spring 的主要组成部分和使用方法。 **IoC 容器** IoC 是 Spring 的核心概念,它通过反转对象创建和管理的控制权,使得开发者不再手动实例化对象,而是由框架负责对象的生命周期。Spring 提供...

    EJB备忘(整理)

    【EJB备忘(整理)】 企业级JavaBean(Enterprise JavaBeans,简称EJB)是Java平台企业版(Java EE)的一部分,它提供了一种标准的框架,用于开发和部署可扩展、安全、事务处理以及分布式的企业级应用程序。EJB是...

    angularjs-hibernate-springmvc

    这是一个备忘录, 主要用angjularjs框架写的前台,bootstrap做的页面样式,页面跳转用了angular-ui-router这个模块插件。 后台主要用了springmvc和hibernate。这是我练笔的一个项目,由于时间关系有些功能没做,当中...

    code-memo:代码备忘录, 包含mybatis、spring、spring-boot、hbase、hive、guava、jdk等示例代码

    Code-memo 平时学习的开源框架的示例代码。包括mybatis、spring、spring-boot、hbase、...springboot、jpa、hibernate访问mysql,并提供restful接口 opensource-utils google guaua 使用示例,hbase访问接口以及hbase操

    struts2从入门到精通总结(备忘)

    3. 使用Struts2整合Hibernate进行数据库操作,体验数据的CRUD操作。 4. 创建拦截器实现用户权限控制,只允许登录用户访问特定页面。 通过以上知识点的学习和实践,你将能够熟练掌握Struts2框架,为构建高效、可维护...

    java版本控制(数据库版本控制)

    1. **创建数据库模型**:定义数据库表结构和数据模型,这通常是通过ORM(对象关系映射)框架如Hibernate或MyBatis完成的。 2. **版本记录**:在每次数据库结构更改时,创建一个新的版本。这可以通过脚本文件(如SQL...

    T1F1练习示例(s2sh)

    标题中的"T1F1练习示例(s2sh)"暗示了这是一个关于编程练习的项目,主要使用Struts2、Spring和Hibernate这三种技术的整合,通常简称为"S2SH"。Struts2是一个流行的MVC(Model-View-Controller)框架,用于构建Java ...

Global site tag (gtag.js) - Google Analytics