hibernate
文章平均质量分 72
iteye_3872
这个作者很懒,什么都没留下…
展开
-
在Hibernate中使用oracle的sequence产生主键
在Hibernate中使用oracle的sequence产生主键在很多情况下,我们使用Hibernate在已经建立好数据库的基础上。在oracle中,如果已经建立好了数据库表,则可以按照下面的步骤把它引入到Hibernate中: 1、在oracle 首先创建sequence create sequence seq_id minvalue 1 ...原创 2009-03-08 23:59:57 · 80 阅读 · 0 评论 -
hibernate 延迟加载和代理模式
Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。下面先来剖析 Hibernate 延迟加载的“秘密”。集合属性的延迟加载当 Hibernate 从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化类一起初...原创 2013-05-06 22:10:20 · 109 阅读 · 0 评论 -
Hibernate 缓存机制
缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能. Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升.缓存是位于应用程序与物理数...原创 2013-05-07 13:41:47 · 92 阅读 · 0 评论 -
一级缓存的使用经验
1.Session 级别的缓存,它同session邦定。它的生命周期和session相同。Session消毁,它也同时消毁;管理一级缓存,一级缓存无法取消; 2.两个session 不能共享一级缓存,因它会伴随session的生命周期的创建和消毁 3.Session缓存是实体级别的缓存,就是只有在查询对象级别的时候才使用,如果 使用HQL和SQL是查询属性级别的,是不使用一级缓存...原创 2013-05-07 14:44:36 · 128 阅读 · 0 评论 -
批量更新和删除
Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,在Hibernate的配置文件中,hibernate.query.factory_class属性用来选择查询翻译器。(1)选择Hibernate3.0的查询翻译器:hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory(...原创 2013-05-07 18:54:03 · 393 阅读 · 0 评论 -
分页的实现
分页代码: Java代码 Query query=session.createQuery("from A"); query.setFirstResult((currentPage-1)*pageSize); query.setMaxResults(pageSize); List list=query.list(); ...原创 2013-05-15 16:13:11 · 92 阅读 · 0 评论 -
jdbc 修改数据
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id = Integer.valueOf(request.getParameter("id")); int bookCount = Integer....原创 2013-05-19 12:58:22 · 167 阅读 · 0 评论 -
jdbc 调用存储过程
JDBC调用存储过程一般有3种: 1.无返回值 2.有一个返回值 3.返回一个数据集,就是游标! 关键字:call 语法格式{call 存储过程名(参数列表)} 废话不说,见代码! 业务实例: 1.添加员工,如果指定部门不存在,则先添加部门信息,再添加员工(无返回值) --创建存储过程如下 Sql代码 CREATE OR REPLACE PROCEDURE...原创 2013-05-19 13:07:52 · 116 阅读 · 0 评论 -
JDBC中的事务处理
在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。我们通过提交commit()或是回退rollback()来结束事务的操作。关于事务操作的方法都位于接口java.sql.Connection中。首先我们要注意,在JDBC中,事务操作默认是自动提交。也就是说,一条对数据库的更新表达式代表一项事务操作。操作成功后,系统将自动调用commit()来提交,否则...原创 2013-01-19 21:43:37 · 151 阅读 · 0 评论 -
hibernate中inverse的用法
在Hibernate中,术语inverse是反转的意思,在关联关系中,inverse="false"为主控方,由主控方负责维护对象的关联关系。 inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-one只含有关系对方的...原创 2010-05-31 14:55:52 · 112 阅读 · 0 评论 -
hibernate的formula的初级使用
实体类的一个属性可以对应数据库表里的多个列,这个属性的值由formula 获得<property formula="。。。" name="topicCount"/> 以前片面的理解为sql语句必须写在()里,如下面<property name="rank" ...原创 2010-09-01 18:07:50 · 129 阅读 · 0 评论 -
hibernate 的session.flush()
SessionFactory sf = new Configuration().configure().buildSessionFactory() ;Session s = sf.openSession();Cat cat = new Cat();Transaction tran = s.beginTransaction(); (1)s.save(cat); (2)(此处同样能够为update d...原创 2009-03-09 20:08:48 · 89 阅读 · 0 评论 -
hibernate 的级联保存和关联关系
Customer 和 Orders 是一对多的关系,Orders和Customer是多对一关系,即这两个双向关联.Customer 和Bid是一对一的关系,一对一的关系就不存在双向和单向了 如下是他们的类:customer.java package com.reflesh;import java.util.Date;import java.util.HashSet;import...2009-03-10 21:41:37 · 142 阅读 · 0 评论 -
二级缓存
二级缓存与Session相对的是,SessionFactory也提供了相应的缓存机制。SessionFactory缓存可以依据功能和目的的不同而划分为内置缓存和外置缓存。SessionFactory的内置缓存中存放了映射元数据和预定义SQL语句,映射元数据是映射文件中数据的副本,而预定义SQL语句是在Hibernate初始化阶段根据映射元数据推导出来的。SessionFactory的内置缓存是...原创 2009-03-11 17:25:11 · 84 阅读 · 0 评论 -
hibernate 中的equals()和hashCode()方法
HashSet判断加入的对象是否重复的原理:对于Set接口的实现类HashSet,它是按照哈希算法来存取集合中的对象,并且因为其继承了Set接口,所以不允许插入相同的数据。那么它如何来保证不插入相同的数据,这就要使用到equals()和hashCode()方法了。在我们往HashSet里面添加对象(add()方法里的参数都是对象)的时候,在Add()的方法内部,它首先调用该对象的hashCode...原创 2009-03-12 15:17:40 · 159 阅读 · 0 评论 -
failed to lazily initialize a collection of role:
今天又碰到错误failed to lazily initialize a collection of role: no session or session was closed解决方法:1、是把对应一对多的那两个列lazy=true改为lazy=false即可 <map name="images" table="item_image_map" sort="natural" lazy...原创 2008-11-04 15:50:31 · 150 阅读 · 0 评论 -
hibernate映射---多对一(list)
http://hi.baidu.com/aimy_xmu/blog/item/9d699b1213342d54f819b830.html原创 2008-11-06 00:06:41 · 75 阅读 · 0 评论 -
[SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
[SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确关键字: sqlserver 2000 driver tds rpc协议流问题:[SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知 解决方法: 下载sql 200...原创 2008-11-23 12:00:06 · 185 阅读 · 0 评论 -
Can't start a cloned connection while in manual tr
原因在手工事务模式 (AutoCommit=false) 下,如果使用直接 (SelectMethod=direct) 模式,当您尝试对使用 JDBC 2000驱动程序的 SQL Server 数据库执行多个语句时,将会出现此问题。直接模式是该驱动程序的默认模式。 回到顶端解决方案当您使用手工事务模式时,必须将驱动程序的 SelectMethod 属性设置为 Cursor,或者确保您按照本文“更...原创 2008-11-23 12:05:58 · 83 阅读 · 0 评论 -
关于为什么单向一对多(one-to-many)要使用关联表的再思考
在传统的数据建模中,允许为 Null 值的外键被认为是一种不好的实践,。这并不是 Hibernate的要求.---Hibernate文档 2013年1月29日:补充:简单地说,数据库的外键关联所描述的最严格与最精准的事物关系应该是像“子-父”这样的单向多对一关系,也即,“子”必有“父”!而反方向的一对多的关系并不是其所能准确描述,原因就是“父”未必有“子”,所以从这个角度上说,使用...原创 2013-01-31 23:44:38 · 170 阅读 · 1 评论