`
gaosililn
  • 浏览: 70227 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ssh学习:hibernate中 集合属性的操作

 
阅读更多

hibernate中对集合属性的操作

在hibernate中,持久化对象中不仅仅有基本数据类型与类类型的属性,也有List,Map,Set,collection等集合属性。但是在这些属性使用中,最好使用的是接口。

Set集合操作:

配置:在Xxx.hbm.xml中<set></set>中配置相关的属性

在<set></set>中常用的标签属性与子元素:

name属性:持久化对象中的set属性的属性名对应

table属性:新建保存该set集合数据的数据表名

key:子元素:在数据库总保存set数据的key/id

element子元素:保存set属性的数据标签,同长都要设置type类型

例子:

<!-- 配置set属 :name值为持久化类中的set的属性名 ,table为保存set的表名 -->
		<set name="students" table="stus">
			<!-- 外键 -->
			<key column="stu_id"></key>
			<!-- set保存对象的数据元素,必须指明数据的类型且字符串要用小写 -->
			<element column="students" type="string"></element>
		</set>

 配置接收之后就可以像一般简单的持久化对象类一样操作数据库了。

 

List集合操作:

List集合操作与set的操作基本一致。在Xxx.hbm.xml文件中配置了<list></list>标签

<list></list>标签常用的属性与子元素:

name属性:持久化对象中的List属性的属性名对应

table属性:新建保存该集合数据的数据表名

key:子元素:在数据库总保存list数据的key/id

element子元素:保存list属性的数据标签,同长都要设置type类型

list-index:子元素:保存在list的属性保存数据的下标索引

Xxx.hbm.xml文件配置List标签实例

<!-- 配置list属性。name为持久化对象的属性名 table为保存该属性数据的表名 -->
		<list name="hobbys" table="hobbys_list">
			<key column="hobbys_id"></key>
			<!-- 索引 -->
			<list-index column="position"></list-index>
			<!-- 报list属性的数据字段 需要制定类型 -->
			<element type="string" column="hobbys"></element>
		</list>

 Collection集合的操作:

Collection集合属性在hibernate中的操作也是跟set等操作基本一致。在Xxx.hbm.xml中以<bag></bag>获取是<idbag></idbag>标签中配置。两者标签都能配置Collection属性,但是还是会不一样的。

主要的区别:使用<bag></bag>标签时候,在使用hibernate修改Collection属性的表时候,会吧所用数据先删除,在添加不该删除的元素。而<idbag></idbag>则不会

Collection的常用属性与子元素:

name属性:持久化对象中的set属性的属性名对应

table属性:新建保存该set集合数据的数据表名

key:子元素:在数据库总保存set数据的key/id

element子元素:保存set属性的数据标签,同长都要设置type类型

 Collection_id子元素:只能用于<idbag></idbag>标签。添加Collection属性表的id

Xxx.hbm.xml中的配置实例:

<bag>

<bag name="hobby" table="hobby_collection_bag">
			<key column="hobby_id_bag"></key>
			<element type="string" column="hobbys"></element>
		</bag>

 <idbag>

<idbag name="hobby" table="hobby_collection">
			<collection-id type="string" column="ho_id">
				<generator class="uuid"></generator>
			</collection-id>
			<key column="hobby_id"></key>
			<element type="string" column="hobby"></element>
		</idbag>

 Map集合的操作:

map属性使用也没有多大的差别,在Xxx.hbm.xml中,使用<map></map>标签配置

<map></map>的常用属性与子元素:

name属性:持久化对象中的map属性的属性名对应

table属性:新建保存该map集合数据的数据表名

key:子元素:在数据库总保存set数据的key/id

element子元素:保存map属性的数据标签,同长都要设置type类型

map-key子元素:map中保存数据的key

Xxx.hbm.xml配置实例:

<map name="hobby" table="hobby_map">
			<key column="name"></key>
			<map-key column="hobby_mapkey" type="string"></map-key>
			<element column="hobby" type="string"></element>
		</map>

 

如果,集合封装的对象是自定义的javabean对象,则是把上面的<element></element>标签换成<one-to-many></one-to-many>在class属性中指定类类名时候,填写的是全路径即可

分享到:
评论

相关推荐

    OA项目SSH整合框架

    1,对于集合属性,默认是lazy="true"的,在第一次使用时才加载。 2,但在加载时,如果Session已经关掉了就会抛LazyInitializationException异常 二,集成 Spring 与 Struts2.1.8.1 1,在web.xml配置监听器...

    spring2.5 学习笔记

    五、 简单属性的注入 11 六、 Bean的作用范围scope 12 七、 集合注入 12 八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-...

    Spring的学习笔记

    五、 简单属性的注入 11 六、 Bean的作用范围scope 12 七、 集合注入 12 八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-...

    低清版 大型门户网站是这样炼成的.pdf

    4.3.12 hibernate的集合映射 266 4.4 小结 270 第5章 hibernate 3持久化技术实践与性能优化 271 5.1 操作持久化对象的常用方法介绍 271 5.1.1 使用session的begintransaction()方法 272 5.1.2 使用session的...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    Java学习笔记-个人整理的

    {12.11}集合操作}{165}{section.12.11} {12.11.1}union}{166}{subsection.12.11.1} {12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{...

    java面试题

    71.8. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 60 71.9. 说下Hibernate的缓存机制 60 71.10. Hibernate的查询方式 60 71.11. 如何优化Hibernate? 61 71.12. Hibernate和spring中常出现的几个...

    千方百计笔试题大全

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    java面试宝典

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    java面试题大全(2012版)

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    10.5.8 使用Map集合记录关联实体 423 10.5.9 对关联实体进行排序 424 10.6 继承关系映射 426 10.6.1 整个类层次对应一张表的 映射策略 427 10.6.2 连接子类的映射策略 430 10.6.3 每个具体类对应一张表的 映射策略 ...

    spring学习笔记

    Spring的Ioc Spring的AOP , AspectJ Spring的...属性的注入(Spring 表达式):.....................................................................................25 1.4.4 集合属性的注入:........................

Global site tag (gtag.js) - Google Analytics