Hibernate对象关系映射总结(16)

2021-02-21 12:35

Hibernate对象关系映射总结

} 测试iterator*/ public void testQueryIterate() { Session session = sf.openSession(); session.beginTransaction(); Iterator<Category> categories = (Iterator<Category>)session.createQuery("from Category").iterate(); 它取出所有数据的id:等到下面的用到时才根据刚才取出的id再发sql语句去取该对象*/ while(categories.hasNext()) { Category c = categories.next(); System.out.println(c.getName()); } 再次查询同样的东西时:iterator利用了session级别的缓存:不会发sql从数据库去查询*/ Iterator<Category> categories2 = (Iterator<Category>)session.createQuery("from Category").iterate(); 它还会取出所有数据的id:再从缓存中去取该对象*/ while(categories2.hasNext()) { Category c = categories2.next(); System.out.println(c.getName()); }

session.getTransaction().commit(); session.close(); }

==================================hibernate主键生成总结=======================================

***************************************对应数字型的主键********************************************* 1:oracle用序列================主键字段是数字类型 在Hibernate中使用oracle的sequence

一. 为表创建自增长字段有两种,一种是不同的表使用各自的Sequence,方法如下: 2.在你的hbm.xml中的配置

<id column="ID" name="id" type="integer"> <generator class="sequence">

<param name="sequence">HETONG_SEQ</param> </generator> </id>

在使用的时候需要注意,Hibernate对于sequence的主键的要求是一定要是shor,long,或者integer 2、native:跨数据库时使用,由底层方言产生。:这个要先建一个公共的序列:hibernate_sequence <id name="id" column="id"> <generator class="native"/> </id>

注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。 如果Oracle中没有该序列,连Oracle数据库时会报错。

2:mysql/sqlserver的主键处理:主键字段是数字类型并且这时表的主键字段要设置为自增长 <id name="id" column="id">


Hibernate对象关系映射总结(16).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(√)2018年安全生产、防护、文明施工费用年度使用计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: