
Hibernate
hibernate
莫特@
微风拂静叶 缘起何方
展开
-
Hibernate面试
1.Hibernate的检索方式①导航对象图检索 ②OID检索 ③HQL检索 ④QBC检索 ⑤本地SQL检索 2. Forward与Global-Forward的区别答:Forward是根据Action return的值找到对应的JSP页。当多个Action共同return同一个值时,可将这个Forward元素写在Global-Forward中。转载 2016-11-09 09:35:56 · 433 阅读 · 0 评论 -
context-param和init-param区别
简述不管是使用了什么技术的web应用都会有一个配置文件web.xml,这个文件中有很多可供配置的元素,其中context-param和init-param就是其中比较难以理解的元素。web.xml配置文件实例 dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfi原创 2017-08-15 07:58:19 · 447 阅读 · 0 评论 -
XML配置文件头部理解
简介学习web开发两年时间了,虽然以前经常使用如Hibernate、Spring等框架的xml配置文件,但是对于他的头部几乎是一个小白,今天发现理解这些还是非常有用的,所以接下来做简单的介绍。源码示例<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/200原创 2017-08-04 10:59:20 · 5171 阅读 · 0 评论 -
Hibernate---fetch
hibernate抓取策略fetch详解一、hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join)测试用例:Student student = (Student)session.get(Student.class, 1);System.out.println(student.getName());System.out.println(stud转载 2017-04-16 15:50:20 · 267 阅读 · 0 评论 -
Hibernate的inverse与cascade
提示:文章为整理而来简述Inverse:负责控制关系,默认为false,也就是关系的两端都能控制,但这样会造成一些问题,更新的时候会因为两端都控制关系,于是重复更新。一般来说有一端要设为true。Inverse是hibernate双向关系中的基本概念。inverse的真正作用就是指定由哪一方来维护之间的关联关系。当一方中指定了“inverse=false”(默认),那么那一方就有责任负责之原创 2017-04-16 15:08:54 · 584 阅读 · 0 评论 -
Hibernate三种数据操作方式HQL-Criteria-Sql
Hibernate提供三种(当前知道的)数据操作方式:HQL,criteria,sqlCriteria作为一种对象化的查询封装模式,不过由于Hibernate在实现过程中将精力更加集中在HQL查询语言上,因此Criteria的功能实现还没做到尽善尽美(这点上,OJB的Criteria 实现倒是值得借鉴),因此,在实际开发中,建议还是采用Hibernate 官方推荐的查询封装模式原创 2017-04-16 11:45:00 · 2067 阅读 · 0 评论 -
Hibernate缓存
Hibernate一级缓存相关问题1.Session中的一级缓存 Hibernate框架共有两级缓存, 一级缓存(Session级别缓存)、二级缓存(SessionFactory级别缓存) 在Session接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存. 持久化对象保存Session一级缓存中(一级缓存引用持久化对转载 2017-04-15 21:19:35 · 368 阅读 · 0 评论 -
Hibernate关联关系
简介Hibernate关联关系主要有:一对一,一对多,多对多。这里主要针对一对多展开讨论。详述在一对多的关联关系中,在单一的一方需要定义一个集合存放一对多中的多的一方,但是这里要注意,在单一的一方定义集合产生的属性在对应的数据表中并没有对应的字段,而是单纯的在持久化类中定义的,一对多的关联是通过Hibernate自身来处理的。在多对多的情况中一般是将一个多对多的关联关系定义一个原创 2017-04-15 19:30:17 · 285 阅读 · 0 评论 -
Hibernate脏数据检查和缓存清理策略
简述清理缓存:对当前持久化状态的缓存数据进行检查,并且将有修改的数据持久化到数据库当中的过程称为“清理缓存”。清理缓存有一定的触发策略。策略详解:当一个对象在持久化的时候会添加到session缓存,缓存的同时Hibernate会自动存放一个与当前持久化对象相关的快照(暂时理解成当前持久化对象的一个副本),程序在操作持久化对象的时候并不会修改这个快照,而且修改的数据并不是立即持久化到原创 2017-04-15 15:35:55 · 1538 阅读 · 0 评论 -
同步-异步--阻塞-非阻塞
同步与异步牵扯到这两个概念的前提是两个线程会有某些微妙的联系并需要进行通信,不然牵扯不到同步与异步问题。同步场景:我要去上厕所,去了卫生间以后发现蹲位都被占了,并且此时还有两个人在排队等候,而我又必须上厕所,此时我就必须排队等待,这就是所谓的同步。特点是必须等待,等的时间不能干其他任何事情(排队的时候还是可以玩哈手机,抽根烟的,但是蹲位有没有空出来需要自己去判断)。异步场景:去了厕所还原创 2017-01-08 21:25:48 · 407 阅读 · 0 评论 -
关联-依赖-聚合
面向对象设计中的关联,依赖,聚合关联一般涉及到数量,有一对一,一对多,多对多;关联一般是有方向的,如果加上方向,那么关联就还有多对一。比如顾客预订单之间就是一种一对多的关联关系,从面向对象的角度考虑顾客和订单都是对象,那么在设计对象的时候就要考虑关联关系和关联的方向,假如要设计成顾客到订单的一对多关联,那么此时在顾客对象类中就应该有订单这个属性,并且这个属性是一个集合;假如要设计成订单原创 2017-01-05 22:44:11 · 338 阅读 · 0 评论 -
Java动态代理生成方式
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反射机制动态创建而成。 在Java的java.lang.reflect包下提供一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成jdk动态代理类或动态代理对象。转载 2016-12-01 14:40:17 · 639 阅读 · 0 评论 -
Session应用深入解析
HttpSession常见问题1、session在何时被创建一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession转载 2016-12-14 19:14:54 · 347 阅读 · 0 评论 -
B/S交互中为何出现乱码个人浅析
首先,客户端在请求数据的时候并不知道服务器会以什么编码返回数据,所以请求头部会含有Accept-Encoding,Accept-Charset,Accept-language等信息,这个的目的就是告诉服务器自己可以接受的各种编码和MIME类型等,但是我用代理工具拦截请求数据时发现,请求头中很少有Accept-charset这个信息,也就是说,客户端并没有指定自己可以接受的编码类型,或者说客户端可以原创 2016-12-14 17:37:02 · 667 阅读 · 0 评论 -
java动态代理详解(好文)
引言Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制转载 2016-12-01 14:41:37 · 1032 阅读 · 0 评论 -
Hibernate延迟加载详解
Hibernate延时加载包括延迟初始化错误,这是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才初始化它,就会产生延迟初始化错误。下面把Customer.hbm.xml文件的元素的lazy属性设为true,表示使用延迟检索策略: clas转载 2016-11-04 22:17:55 · 480 阅读 · 0 评论