Java面试题分享-Hibernate

产业园区如何高效对接企业技术需求与高校科研成果?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

问:hibernate六大接口
答:1)Configuration接口:负责配置并启动Hibernate
2)SessionFactory接口:负责初始化Hibernate
3)Session接口:负责持久化对象的CRUD操作
4)Transaction接口:负责事务
5)Query接口和Criteria接口:负责执行各种数据库查询

问:hibernate处理过程
答:1)通过Configuration config = new Configuration().configure();//读取并解析hibernate.cfg.xml配置文件
2)由hibernate.cfg.xml中的读取并解析映射信息
3)通过SessionFactory sf = config.buildSessionFactory();//创建SessionFactory
4)Session session = sf.openSession();//打开Sesssion
5)Transaction tx = session.beginTransaction();//创建并启动事务Transation
6)persistent operate操作数据,持久化操作
7)tx.commit();//提交事务
8)session.close();关闭Session
9)sf.close()关闭SesstionFactory

问:事务的特性
答:1)原子性(atomic),事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行
2)一致性(consistent),事务在完成时,必须使所有的数据都保持一致状态
3)隔离性(insulation),由并发事务所作的修改必须与任何其它并发事务所作的修改隔离
4)持久性(Duration),事务完成之后,它对于系统的影响是永久性的

问:数据库事务并发可能带来的问题
答:1)第一类丢失更新(lost update): 在完全未隔离事务的情况下,两个事物更新同一条数据资源某一事物异常终止,回滚造成第一个完成的更新也同时丢失。
2)脏读(dirty read):如果第二个事务查询到第一个事务还未提交的更新数据,形成脏读
3)不可重复读(unrepeated read):一个事务两次读取同一行数据,结果得到不同状态结果如中间正好另一个事务更新了该数据,两次结果相异,不可信任
4) 第二类丢失更新(second lost updates):是不可重复读的特殊情况,如果两个事务都读取同一行,然后两个都进行写操作,并提交,第一个事务所做的改变就会丢失

问:为了解决数据库事务并发运行时的各种问题数据库系统提供四种事务隔离级
答:1)Serializable 串行化
2)Repeatable Read 可重复读
3)Read Commited 可读已提交
4)Read Uncommited 可读未提交

问:Hibernate悲观锁解决事务并发问题
答:一个典型的依赖数据库的悲观锁调用:select * from account where name=“Erica” for update这条sql语句锁定了account表中所有符合检索条件name=Erica的记录

问:Hibernate为乐观锁提供了3中实现
答:1)基于version
2)基于timestamp
3)为遗留项目添加添加乐观锁

问:Hibernate 的缓存体系
答:1)一级缓存: Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象,每个Session 都有自己独立的缓存,且只能被当前工作单元访问
2)二级缓存: SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句

问:Hibernate 中Java对象的状态
答:1)临时状态(transient)特征:不处于Session 缓存中,数据库中没有对象记录,
Java如何进入临时状态
通过new语句刚创建一个对象时
当调用Session 的delete()方法
从Session 缓存中删除一个对象时
2)持久化状态(persisted)特征:处于Session 缓存中,持久化对象数据库中设有对象记录,Session 在特定时刻会保持二者同步
Java如何进入持久化状态
Session 的save()把临时-》持久化状态
Session 的load(),get()方法返回的对象
Session 的find()返回的list集合中存放的对象
Session 的update(),saveOrupdate()使游离-》持久化
3)游离状态(detached)特征:不再位于Session 缓存中,游离对象由持久化状态转变而来,数据库中可能还有对应记录
Java如何进入持久化状态-》游离状态
Session 的close()方法
Session 的evict()方法,从缓存中删除一个对象

问:Hibernate中get和load有什么不同之处
答:1)Hibernate的get方法,会确认一下该id对应的数据是否存在,首先在session缓存中查找然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null
2)Hibernate的load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true):
①若为true,则首先在Session缓存中查找,看看该id对应的对象是否存在,不存在则使用延迟加载
返回实体的代理类对象(该代理类为实体类的子类,由CGLIB动态生成)。等到具体使用该对象(除获取OID以外)的时候
再查询二级缓存和数据库,若仍没发现符合条件的记录,则会抛出一个ObjectNotFoundException
②若为false,就跟Hibernate的get方法查找顺序一样,只是最终若没发现符合条件的记录
则会抛出一个ObjectNotFoundException,所说的load方法抛异常是指在使用该对象的数据时
数据库中不存在该数据时抛异常,而不是在创建这个对象时

问:Hibernate中save、update和saveOrUpdate方法的不同之处
答:1)save:执行保存操作的,对一个新new出来的对象进行保存,数据库中没有这个对象,如果数据库中有,会报错说有重复的记录
2)update:如果是对一个已经存在的托管对象进行更新,要使用update方法了,数据中有这个对象
3)saveOrUpdate:这个方法是更新或者插入,有主键就执行更新,如果没有主键就执行插入。是根据实体类对象的状态做的不同操作
①实体类对象为临时态时做的添加save操作
②实体类对象为游离态、持久态时做的修改update操作

问:cascade关系有以下几种
答:1)all: 所有情况下均进行关联操作,即save-update和delete
  2)none: 所有情况下均不进行关联操作。这是默认值
  3)save-update: 在执行save/update/saveOrUpdate时进行关联操作
  4)delete: 在执行delete 时进行关联操作
  5)all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点

问:什么是懒加载
答: 1)Lazy:延迟加载,在真正使用某个对象的时候才正真的去创建,即hibernate才会正真的发出sql语句去加载该对象
2)Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了
lazy策略可以用在:
①标签上:可以取值true/false
②标签上,可以取值true/false,这个特性需要类增强

问:Hibernate 中inverse的属性
答:hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联

Ansys Zemax实战:5步搞定衍射光学元件(DOE)设计,附赠超透镜(metalens)避坑指南 本文详细介绍了使用Ansys Zemax进行衍射光学元件(DOE)和超透镜(metalens)设计的5步实战流程。从基础光学系统搭建到相位面设计验证,再到制造准备与实测对比,全面解析了OpticStudio中的关键技巧和常见避坑指南,帮助工程师高效完成复杂光学元件设计。 阅读详情

相关推荐

ARKit面部动画实战:如何用blend shape让数字人表情更自然(附中文对照表)

本文深入探讨了如何利用ARKit的blend shape技术驱动数字人面部动画,以实现更自然生动的表情。文章提供了详细的blend shape中文对照表,并分享了实战技巧,包括构建复合表情动画序列、处理不对称性与微表情,以及性能优化策略,旨在帮助开发者高效提升数字人的表情表现力。

weixin_29292535的博客 326

hibernate savealiasentity 保存后id为空_好程序员Java教程分享Java面试题之Hibernate

好程序员Java教程分享Java面试题之Hibernate1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFactory会话工厂(内部有连接池) 第三步:打开Session 连接 第四步:开启事务 第五步:运行操作 第六步:提交事务 第七步:关闭session 第八步:关闭连接池2.Hibernate 中对对象的...

weixin_39631572的博客 210

斑马打印机状态监控进阶:不用SDK也能获取打印状态的3种野路子

本文介绍了三种不依赖官方SDK的斑马打印机状态监控方法,包括SGD命令、TCP端口嗅探和共享打印机日志分析。这些方案适用于老旧系统或网络受限环境,帮助运维人员实时掌握打印状态,提升设备管理效率。特别适合工业自动化和物流仓储场景中的应急处理。

weixin_42628688的博客 427

hibernate createsqlquery delete多个表_好程序员Java教程分享Java之Hibernate常见面试题

好程序员Java教程分享Java之Hibernate常见面试题 1、hibernate的inverse属性的作用? 解决方案一,按照Object[]数据取出数据,然后自己组bean 解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1filed1,type2field2),然后在hql里面就可以直接生成这个bean...

weixin_39969881的博客 109

反激电源占空比为何必须小于0.5?次谐波振荡与斜坡补偿详解

在开关电源设计中,峰值电流模式控制因其优异的动态响应和逐周期限流保护而被广泛应用。其工作原理是通过采样电感电流的峰值,与误差电压比较来控制开关管的导通与关断。然而,这种控制方式在反激等隔离拓扑中,当占空比超过50%时,会面临一个固有的稳定性挑战——次谐波振荡。这是由于电流扰动会在相邻开关周期内被放大而非衰减,导致系统在开关频率一半处发生振荡,严重影响输出纹波和可靠性。为解决这一问题,工程上引入了斜坡补偿技术,通过向控制信号叠加一个固定斜率的斜坡,改变环路增益条件,从而在宽输入电压或高占空比需求下维持系统稳定

weixin_29631169的博客 627

Java教程分享Java面试题之Hibernate

Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFactory会话工厂(内部有连接池) 第三步:打开Session 连接 第四步:开启事务 第五步:运行操作 第六步:提交事务 第七步:关闭session 第八步:关闭连接池 2.Hibernate 中对对象的三种...

qf2019的博客 161

海思ISP调优实战:从实验室到真实场景的IPC相机图像质量优化指南

本文深入探讨海思ISP调优在IPC相机图像质量优化中的实战应用,从实验室标定到真实场景部署的全链路调优方法。重点解决光照动态范围、色温变化和噪声特性等核心问题,提供AE权重表配置、CCM标定、3DNR时域滤波等关键技术方案,帮助实现从理论到实践的图像质量提升。

s3t4u的博客 750

好程序员Java教程分享Java之Hibernate常见面试题

  好程序员Java教程分享Java之Hibernate常见面试题 1、hibernate的inverse属性的作用?   解决方案一,按照Object[]数据取出数据,然后自己组bean   解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1filed1,type2field2),然后在hql里面就可以直接...

qq_35970166的博客 147

ArcGISPro小白必看:5分钟搞定3D地形图制作(附免费数据源)

本文为ArcGISPro初学者提供5步制作专业3D地形图的完整指南,涵盖免费数据获取、项目初始化、数据预处理、3D场景构建和成果输出等关键步骤。特别推荐使用NASA的SRTM高程数据和吉林一号卫星影像,帮助用户快速掌握3D地形图制作技巧,适用于教学演示和科研分析。

weixin_28314575的博客 240

playwright-mcp 安装使用的详细教程

Playwright MCP 快速入门指南 Playwright MCP Server 是由微软开发的浏览器自动化服务,通过 MCP 协议为 AI/Agent/LLM 提供网页交互能力。它基于可访问性树而非屏幕截图,支持多种浏览器和运行模式。 安装要求: Node.js v18+ 命令行操作能力 支持 MCP 的客户端 安装方式: 通过 npx 快速启动:npx @playwright/mcp@latest 项目依赖安装:npm install @playwright/mcp 主要特性: 支持 Chrome

上善若水 7996

好程序员Java教程分享Java面试题之Hibernate

好程序员Java教程分享Java面试题之Hibernate 1.简书一下Hibernated的开发流程 第一步:加载Hibernate的配置文件,读取配置文件的参数, 第二步:创建SessionFactory会话工厂(内部有连接池) 第三步:打开Session 连接 第四步:开启事务 ...

qq_35970166的博客 170

【K8S系列】Kubernetes 中 Pod 无法通过 Service 名称访问服务的 DNS 解析失败问题【已解决】

在 Kubernetes 中,Service 提供了一种稳定的方式,通过名称访问一组 Pod。当其他 Pod 无法通过 Service 名称访问服务,并且出现 DNS 解析失败时,通常会导致应用无法正常工作。本文将详细分析此问题的常见原因及其解决方案。

颜淡慕潇 1万+

hibernate查询指定字段_好程序员Java教程分享Java之Hibernate常见面试题

好程序员Java教程分享Java之Hibernate常见面试题 1、hibernate的inverse属性的作用? 解决方案一,按照Object[]数据取出数据,然后自己组bean 解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1filed1,type2field2),然后在hql里面就可以直接生成这个bean...

weixin_39936086的博客 164

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java最新Hibernate框架介绍以及入门 【二】Hibernate的常见配置,爱了爱了

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。最新整理面试题上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题最新整理电子书最新整理大厂面试文档以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取本文已被。

2401_84584817的博客 945

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【java技术面试第五十八讲】Java面试题58 . hibernate的缓存

Java面试题58 :hibernate的缓存提前预告,完全免费,写文不易: 如果喜欢、对你有所帮助还请大家点个在看, 好东西要大家共享才能实现它的价值 , 让更多有需要的人看到,如...

hello world! 339

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

2024年最全spring springmvc hibernate整合之java web 项目(1),Java常用笔试题

你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了。面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了。

2401_84024148的博客 321

Hibernate注解版关联关系映射全解析+案例

注意:需要加上mappedBy=”role”,如果不加上的话, role 也会生成一个外键(user_id),mappedby=”role”需要指向与他关联对象的一个属性,说明双向关联关系中,有且仅有一端是作为主体(owner)端存在的,主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明,mappedBy的值指向主体的关联属性。因为在实际开发中一对一很少用。要由One的一方指向Many的一方,并且,这个属性应该等于Many的一方中含有One类的属性的属性名,否则会出错啦。

m0_58269070的博客 528

ORM的经典应用:Hibernate

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性。

2401_83916204的博客 390

java面试题连接集锦

文章分类:招聘求职---------九月更新JAVA面试题带答案的java面试题 欢迎参考Java的几个基础面试题 带答案的如下代码中finally中的代码会不会执行?Java里面StringBuilder和St…JAVA和C++区别都有哪些?Struts中DispatchAction和…如何在Web项目中保护JSP源代码不被未经授…Struts的控制器如何知道什么样的信息转发…介绍一下Struts的Action类介绍一下Struts的ActionServl…解释一下Java中的流 Stream分别解释一下

zb_3Dmax的博客 154

JAVA基础面试题,java初级面试笔试题

我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。 推荐文章:Java 面试知识点解析;Mysql优化技巧(数据库设计、命名规范、索引优化 Hibernate的缓存机制 1、Hibernate是一个持久层框架,经常访问物理数...

ccc_ccc8的博客 772

Hibernate 调用SQL Server2008的存储过程(有参无参两种情况)和SQL语句

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。《Java高级面试》《Java高级架构知识》《算法知识》《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!共有多少本书]: ");%>分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。《Java高级面试》[外链图片转存中…(img-nGXMnnP5-1714643550603)]《Java高级架构知识》

2401_84092398的博客 914

208道Java高频面试题,让你面试之路畅通无阻!

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!图片转存中…(img-9IeLHCru-1712556838781)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

2401_84046677的博客 766

Java反射高频面试题(附答案)

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!成功只会留给那些有准备的人!《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取。

2401_83329718的博客 898

ORM的经典应用:Hibernate(1)

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来目录:部分内容截图:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!战项目源码》点击传送门,即可获取!**

2401_84049061的博客 249

阿里最新春招面经,腾讯/美团/字节1万道Java中高级面试题

企业调薪、裁员、组织架构调整等等,坏消息只多不少,最近也有很多来咨询跳槽的朋友,都是因为之前的公司出现了比较大的薪资和组织变动。关于JAVA内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,几个对象,几个属性,几个方法。我梳理了各个大厂春秋招面经分享,分享上万道面试题及答案,从实习生到开发1-10年的简历模板,面试过程的文档教程!谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的。DB中索引原理,种类,使用索引的好处和问题是什么?

m0_63437643的博客 968
上一篇: Java面试题分享-Struts2
下一篇: Java面试题分享-Spring
程序媛小敏
博客等级 码龄7年 0粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值