Hibernate哪点事?
1.为什么在Hibernate的实体类中要提供一个无参数的构造器这一点非常重要?
每个Hibernate实体类必须包含一个 无参数的构造器, 这是因为Hibernate框架要使用Reflection API,
通过调用Class.newInstance()来创建这些实体类的实例.如果在实体类中找不到无参数的构造器,
这个方法就会抛出一个InstantiationException异常。
2.Hibernate中Session的lock()方法有什么作用?
Session的lock()方法重建了关联关系却并没有同数据库进行同步和更新。
因此,你在使用lock()方法时一定要多加小心。在进行关联关系重建时,
可以随时使用Session的update()方法同数据库进行同步。
3.Hibernate中save、persist和saveOrUpdate这三个方法的不同之处?
将对象保存到数据库中的方法,但其中有些细微的差别。
例如,save()只能INSERT记录,但是saveOrUpdate()可以进行 记录的INSERT和UPDATE。
还有,save()的返回值是一个Serializable对象,而persist()方法返回值为void。你
还可以访问 save、persist以及saveOrUpdate,找到它们所有的不同之处。
4.为什么保存一个父对象,而它的关联对象没有自动储存到数据库里
答:关联对象必需显式的调用session.save()(或session.persist()),
或者在关联的映射文件中加入cascade="all"或cascade="save-update"(或cascade="persist")才能够自动关联执行。
5.为什么在Hibernate中添加、删除、修改一个对象或Collection,但是数据库中实际上没有任何变化
这是因为如果没有使用Hibernate的自动事务处理,则必需显式的提交事务,操作才会在数据库中执行。
6.Cascade和Inverse有什么区别?
答:可以这样理解,Cascade定义的是关系两端对象到对象的级联关系;而Inverse定义的是关系和对象的级联关系。
7.Hibernate常用的接口有哪些?
SessionFactory,Query,Session,Transaction,Criteria,SQLQuery
8.简述Hibernate操作数据库的步骤?
1.加载解析配置文件,
2.读取并解析映射信息,创建SeesionFactory
3.打开Session
4.开启事务
5.数据库的操作
6.事务提交或回滚
7.关闭Session
9.说明以下属性的作用lazy,fetch,inverse,cascade?
lazy:延迟加载
true 延迟加载
false 即时加载,访问1方的时候N方信息自动加载
fetch:抓取策略
select 两次抓取(默认)join 一次抓取(迫切左外连接)
inverse:控制权转移
true (1:M是为true,对方为主控方)false
cascade:级联操作
9.list()和iterate()方法的区别?
list()每次都要 从数据库查询数据
iterate() 采用N+1次查询方式,先从数据库中先查所有的ID,在根据ID查询对象
10.hibernate.cfg.xml和User.hbm.xml分别是干什么的?
hibernate.cfg.xml----hibernate 配置文件
配置数据库的连接和hibernate 运行时各种属性,配置缓存,连接池等信息
User.hbm.xml -----实体类到数据库表的映射文件
配置表中字段和实体类属性的名称,类型,之间的关系
11.在hibernate.cfg.xml文件中显示SQL,格式化SQL需要设置哪些属性?
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
12.session.commit 和flush区别
commit会先调用flash执行session清理,然后提交事物;
flash执行session,但不一定提交事物(因为事物可能被委托给外围的aop代理来做);
Hibernate哪点事?的更多相关文章
- Java - 使用hibernate配置文件 + JPA annotation注解操作数据库
本程序运行环境:IDEA. 实际上我对hiberbate与注解的关系还不是太清晰.据我所知注解都是Java JPA的,那么我的理解是:hibernate就应该只是通过这些JPA标识及hibernate ...
- 使用 Hibernate 和 MySQL 需要知道的五件事
https://www.thoughts-on-java.org/5-things-you-need-to-know-when-using-hibernate-with-mysql/ 作者:Thorb ...
- Hibernate(3)——实例总结Hibernate对象的状态和ThreadLoacl封闭的session
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: Hibernate的内部执行过程(CRUD) 对象的状态及其转换图和例子 使用JUnit测试 使用getCur ...
- 如何决解项目中hibernate中多对多关系中对象转换json死循环
先写一下原因吧!我是写的SSH项目,在项目中我遇到的问题是把分页对象(也就是pageBean对象)转化为json数据,下面为代码: public class PageBean <T>{// ...
- Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)
写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...
- HttpSession与Hibernate中Session的区别
一.javax.servlet.http.HttpSession是一个抽象接口 它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户 ...
- 【Hibernate框架】flush机制
背景: 一个偶然的机会,我做了一个例子,中间我遇到了一个有意思的问题,就是在执行commit方法之前,做了两次save操作,如下: SessionFactory sf = new Configurat ...
- springMVC+spring+hibernate 框架整合实例
先说一下流程思路: 流程讲解1:首先访问会先定位到控制器.这就用到了过滤器配置文件"spring-mvc.xml".这个文件负责定义控制器的包路径.视图的格式等.其次从" ...
- Hibernate的三种状态及对象生命周期
理解Hibernate的三种状态,更利于理解Hibernate的运行机制,这些可以让你在开发中对疑点问题的定位产生关键性的帮助. 三种状态 临时状态(Transient):在通过new关键字, ...
随机推荐
- msbuildtoolspath is not specified for the toolsversion xx
本地先是安装的vs2015,由于项目需求又安装了vs2008,在用vs2008打开.csproj工程文件,出现了上图的错误. 这一般是由于安装了vs2015和vs2008冲突产生的问题. 解决方案: ...
- Microsoft Edge 浏览器远程代码执行漏洞POC及细节(CVE-2017-8641)
2017年8月8日,CVE官网公布了CVE-2017-8641,在其网上的描述为: 意思是说,黑客可以通过在网页中嵌入恶意构造的javascript代码,使得微软的浏览器(如Edege),在打开这个网 ...
- Android NDK Application.mk(中文翻译)
作者:阿宝 更新:2016-08-31 来源:彩色世界(https://blog.hz601.org/2016/07/26/android-NDK-application-mk/index.html) ...
- 7.21.03 while循环和do...while循环
while循环 while是最基本的循环,它的结构为: while( 布尔表达式 ) { //循环内容 } 只要布尔表达式为true,循环体会一直执行下去. 有时程序也需要死循环. 实例 public ...
- 关于xmlHttp.status最新统计
AJAX中请求远端文件.或在检测远端文件是否掉链时,都需要了解到远端服务器反馈的状态以确定文件的存在与否. Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个 ...
- STL学习之find系列函数
这里先介绍find, find_if, find_first_of,三个函数.其余的以后再更新. 一.std::find() 用法:find(first, end, value); 返回区间[firs ...
- 一次FCK拿bc全过程
和大家简单的弄下fckeditor 漏洞在红客我看到好多人对fck 这个漏洞很干兴趣 其实这个漏洞这的很老了 也非常好利用 我也扫了一点fck的漏洞网址 下面我们就来打开一个我们看看这个一号站平台 ...
- Eclipse中Maven的配置
Maven 的配置 1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven 1.2 配置 Maven 的c ...
- Thinkjs使用ajax实现表单提交
//前端代码 1 $('form').submit(evt=>{ evt.preventDefault();//阻止表单默认提交 $.ajax({ url: '/user/personal/up ...
- Tomcat知识1