hibernate
文章平均质量分 80
caomiao2006
这个作者很懒,什么都没留下…
展开
-
关于hibernate中对象的三种状态分析
一,首先hibernate中对象的状态有三种:瞬态、游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save()、saveOrUpdate()、get()、load();持久态到瞬态的方法有delete();游离态到持久态的方法有update()、saveOrUpdate()、lock();持久态到游离态的方法有:session.close()、session.转载 2015-09-14 22:30:05 · 1760 阅读 · 0 评论 -
hibernate 分页的两种方法
criteria分页public Page getPage(int currentPage,int pageSize,Criterion...crts){Criteria c=session.createCriteria(House.class);List list=null;for (int i = 0; i c.add(crts[i]);}c.setProjecti转载 2016-08-02 22:48:31 · 825 阅读 · 0 评论 -
关于使用 Hibernate 调用存储过程方法
使用hibernate调用不带参数返回值的存储过程方法public Boolean doInHibernate(Session session) throws HibernateException, SQLException { try{ Transaction tr = session.beginTransaction(); SQLQuery转载 2016-08-02 22:37:16 · 2267 阅读 · 0 评论 -
hibernate的hql查询语句总结
这篇随笔将会记录hql的常用的查询语句,为日后查看提供便利。在这里通过定义了三个类,Special、Classroom、Student来做测试,Special与Classroom是一对多,Classroom与Student是一对多的关系,这里仅仅贴出这三个bean的属性代码:Special类:public class Special{ private int转载 2016-07-27 23:27:44 · 394 阅读 · 0 评论 -
Java和mysql的数据类型对应
1.常规Hibernate 映射integer 或者 intint 或者 Java.lang.IntegerINTEGER4 字节longlong LongBIGINT8 字节shortshort ShortSMALLINT转载 2016-07-24 22:08:02 · 925 阅读 · 0 评论 -
hibernate延迟加载导致no session
hibernate的get和load的区别相信大家都知道,load是通过代理加载实体,如果只访问id是不会读库将所有属性加载进来的,这个就是一个延迟加载的简单场景。如果按照标准的spring+hibernate的整合,当使用load加载一个实体是,会报no session的错误这是因为,延迟加载需要在同一个session中,如果按照标签配置,session在load后就已经关闭转载 2016-07-24 21:22:08 · 1865 阅读 · 0 评论 -
hibernate id 联合主键生成策略
如果数据库中用多个字段而不仅仅是一个字段作为主键,也就是联合主键,这个时候就可以使用hibernate提供的联合主键生成策略。 具体如下: 可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求: 它必须实现 java.io.Serializable 接口 它必须重新实现 equals() 和 hashCode() 方法,始终和组合关键字在数据库中的概念转载 2016-07-10 20:59:47 · 2042 阅读 · 0 评论 -
@GeneratedValue
一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法, JPA提供四种标准用法,由@GeneratedValue的源代码可以明显看出. Java代码转载 2016-07-10 20:58:16 · 436 阅读 · 0 评论 -
hibernate id 生成策略
1.介绍Hibernate是目前最为常用的ORM框架,当然也有人会选择iBATIS或者其他的架构.这里我们着重讲Hibernate的ID生成策略 2.可选的ID策略生成方式 (1)native/auto根据不同的数据库采用不同的ID生成方式,例如:在SQL Server中采用identity; 在MySQL中采用auto_increment; 在OR转载 2016-07-10 20:56:35 · 334 阅读 · 0 评论 -
OpenSessionInView详解
OpenSessionInViewFilter是spring提供的一个针对hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibernate的Session,一直保持这个Session,直到这个请求结束,具体是通过一个Filter来实现的。由于Hibernate引入了Lazy Load特性,使得脱离Hibernate的Session周期的对象如果再想通过getter方法转载 2016-06-26 11:08:57 · 392 阅读 · 0 评论 -
OpenSessionInViewFilter 的配置及替代方案
Spring 为我们提供了一个叫做 OpenSessionInViewFilter 的过滤器,他是标准的 Servlet Filter 所以我们把它按照规范配置到 web.xml 中方可使用。使用中我们必须配合使用 Spring 的 HibernateDaoSupport 来进行开发,也就是说,我们的dao层的类都要继承于 HibernateDaoSupport,从中由 Spring 来控制 Hi转载 2016-06-26 11:08:09 · 1531 阅读 · 0 评论 -
hibernate N+1问题
Hibernate 中常会用到set,bag等集合表示1 对多的关系, 在获取实体的时候就能根据关系将关联的对象或者对象集取出, 还可以设定cacade进行关联更新和删除。这不得部说hibernate 的orm做得很好,很贴近oo的使用习惯了。 但是对数据库访问还是必须考虑性能问题的, 在设定了1 对多这种关系之后, 查询就会出现传说中的n +1 问题。 1 )1 对多,在1 方,查找得到转载 2015-11-23 20:44:10 · 376 阅读 · 0 评论 -
hibernate的查询缓存
在hibernate的使用中,大家多数时间都在讨论一级缓存和二级缓存,而往往忽略了查询缓存。其实hibernate的查询缓存在使用过程中也起着同样重要的作用。hibernate的查询缓存是主要是针对普通属性结果集的缓存, 而对于实体对象的结果集只缓存id。在一级缓存,二级缓存和查询缓存都打开的情况下作查询操作时这样的:查询普通属性,会先到查询缓存中取,如果没有,则查询数据库;查询实体,会先到查询缓转载 2015-11-23 20:43:24 · 353 阅读 · 0 评论 -
Hibernate 缓存机制
一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 二、what(Hibernate缓存原理是怎样的?)Hibern转载 2015-11-23 20:42:46 · 346 阅读 · 0 评论