Hibernate曲径通幽
文章平均质量分 73
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。本专栏将结合博主亲身实践,深入阐述Hibernate生产环境下的应用等。
低调的洋仔
春风桃李花开日,秋雨梧桐叶落时。西宫南内多秋草,落叶满阶红不扫。
展开
-
Hibernate与代理模式
代理模式:当需要调用某个对象的时候,不需要关心拿到的是不是一定是这个对象,它需要的是,我拿到的这个对象能够完成我想要让它完成的任务即可,也就是说,这时调用方可以拿到一个代理的一个对象,这个对象可以调用它想创建的对象的方法完成调用方的任务就好了。静态代理模式模拟实例应用场景介绍:这里有一个PDF,我想打开,但是,初始化的过程比较耗时,那么在这个时候如果在创建对象的时候直接初始化那么势原创 2016-02-23 22:55:45 · 4805 阅读 · 4 评论 -
Hibernate查询时用HQL动态创建对象
当你在实际的开发过程中,有时候查询的结果只是需要查询一张表中的一部分数据,而不是所有的数据,比如说,我现在有一个需求是这样的:我只需要user的id和name这两个属性的数据,其他的数据暂时不需要,那么这时候如果按照原来(假设原来user表中数据包括:userId,userName,teleNum,email等等的个人信息)的对象直接将整个对象全部获取到,这是牺牲性能作为代价的,一个user的时候原创 2016-02-23 20:52:32 · 7905 阅读 · 4 评论 -
Hibernate5.1.fianl使用JPA注解方式异常:persistence.Table.indexes()[Ljavax/persistence/Index;
之前开发时我用的是配置文件的方式,实现实体类和数据库中数据的映射关系,后来看到也有注解的方式,也比较方便,就想试试,去Hibernate官网下载了最新版的Hibernate5.1.final版本,直接搭建好环境,进行测试,结果遇到了好几个问题,抛出好几个异常信息。不过逐渐的被解决了。网上对这几个异常处理的解决方案比较少,这里分享一下我是怎么解决的。异常信息INFO: HHH000423:原创 2016-02-16 17:01:31 · 4667 阅读 · 1 评论 -
Hibernate异常--数据库所在服务器关闭引起的异常
春节前要回家去的日子,一切准备就绪,项目初期版本也已经基本上完成。本来想着可以愉快的回家了,结果在给导师演示的时候报出一堆的异常,之前测试的时候很正常,关键时候就报了一堆bug,你能理解我当时的心情是多么的复杂吗?在此记录下这个异常,以便以后再次遇到的时候可以立刻意识到是哪里的问题。异常的信息如下:由于异常信息比较多,我在上面进行解释并阐述一下我找到问题根源的思路:1. 看异常的开头部原创 2016-02-02 16:03:18 · 1992 阅读 · 1 评论 -
Hibernate之load和get的区别
load和get都会可以起到从数据库中获取持久态数据的作用,但是还有些稍微的区别的。参考下面的这个例子:@Test(expected = IllegalArgumentException.class)public void 延迟加载() throws Exception { // 启动 Session session = sessionFactory.openSe原创 2016-02-01 17:51:58 · 3346 阅读 · 0 评论 -
Hibernate主键生成策略解读
Hibernate主键生成策略比较多,需要对这几种策略有一定的了解才能更好的服务于你的项目,下面对几种常见的Hibernate的主键生成策略进行解读,一方面可以当做读者的学习资料,另一方面可以为自己起到备忘录的作用。Hibernate主键生成策略大概有几种常见的主键生成策略:1. increment:由Hibernate代理自增生成主键,跟数据库没有关系(注:只是生成的原创 2016-01-30 20:22:07 · 2101 阅读 · 0 评论 -
Hibernate开发实践笔记--对象在set属性时更新了数据库问题
之前一直没发现这个问题,后来是因为我的导航栏数据库中数据发生变动后,产生菜单的时候又update了一遍数据库中的数据,使得部分数据值为空了,当时觉得很奇怪,后来仔细看了下log4j打印的日志发现其中有更新的动作,在代码中将数据库中获取到的对象set一个对象属性时,数据库就update了,但是这个问题是怎么产生的呢?问题重述Set users = new HashSet();Use原创 2016-01-28 21:06:39 · 11921 阅读 · 6 评论 -
Hibernate自学详细笔记
Hibernate详细自学笔记,初学者快来看看吧!!!!原创 2015-08-31 21:23:25 · 1773 阅读 · 0 评论 -
Hibernate缓存机制详细解读
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。原创 2015-11-03 08:42:30 · 697 阅读 · 0 评论 -
Hibernate不同版本的配置信息
在实际的开发中有时因为想要使用某个版本的插件,但是这个插件使用的Hibernate的版本与现在你所使用的版本不一致,那么这时候就很有必要知道配置文件中xml的头部信息需要替换为相应版本的头,否则的话会出现错误。 我在开发时,切换了下Hibernate的版本,切到低版本去(首先的任务是换jar包),但是发现切换完成总是报错,看代码一遍又一遍也找不出错误,最后发现错误信息中显示无法初始化类的实例,我当时猜测可能是相应的bean类的映射文件的xml头不是当前版本的,后来把对应的xml的头改了一下,最终成功原创 2015-11-24 16:03:03 · 2862 阅读 · 1 评论 -
Hibernate之inverse和cascade详解
文章:Hibernate自学详细笔记 继Hibernate学习笔记整理之后,发现inverse和cascade这两个属性在配置过程中比较含糊,仔细比较一下是有些地方比较像,所以很容易搞糊涂。借助此文来阐述下inverse和cascade的区别。什么是inverse? 默认值为false;也就是双方都可以维护关系。如果在一方中显示的设置为false的话那么就意味着原创 2015-12-04 14:41:12 · 2156 阅读 · 1 评论 -
Hibernate多对多映射关系中自定义排序
SSH联合开发过程中发现当多对多的关系存在时,比如role和function,多对多的关系,我想通过role获得这个role的所有的function并且按照自己想要的方式进行排序,但是发现配置的时候没找到合适的方式。只好自己重写了Comparable的compareTo方法,并且将封装好的数据转为treeSet对象传递到前台实现数据的有序化。 Function对应的bean类:publi原创 2015-12-18 17:07:58 · 2052 阅读 · 0 评论 -
Hibernate-HQL、Criteria、SQL实现查询对照以及增删改
本文旨在为读者呈现不同的方式查询方式:HQL方式的查询、SQL原生态SQL方式的查询、以及Criteria方式的查询,拓展查询的不同实现思路,开阔视野、并涵盖了部分的Hibernate增删改的基本操作。简单介绍一下HQL和Criteria:HQLHQL(Hibernate Query Language)提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法;[sele原创 2016-01-02 15:51:48 · 6395 阅读 · 3 评论