我的见解之hibernate(四)

Hibernate旅程(四)Hibernate对数据库删除、查找、更新操作 上篇,我们以向数据库添加操作来演示hibernate持久化对象的三种状态。本节继续hibernate对数据库的其他操作,删除、查询、修改。 Hibernate对数据删除操作 删除User表中个一条数据,是需要更具User表的主键id值来删除的。首先根据id值向数据库中查询出来对应的对象。可以采用两种方式一是session的get方法,一个是session的load方法。 Session的Ge 阅读详情
站在持久化的角度, Hibernate 把对象分为 4 种状态: 持久化状态, 临时状态, 游离状态, 删除状态. Session 的特定方法能使对象从一个状态转换到另一个状态.

临时对象(Transient): 就是我们new的就是临时状态,他还没有OID
在使用代理主键的情况下, OID 通常为 null

不处于 Session 的缓存中

在数据库中没有对应的记录


持久化对象(也叫”托管”)(Persist):

OID 不为 null
位于 Session 缓存中
若在数据库中已经有和其对应的记录, 持久化对象和数据库中的相关记录对应
Session 在 flush 缓存时, 会根据持久化对象的属性变化, 来同步更新数据库

在同一个 Session 实例的缓存中, 数据库表中的每条记录只对应唯一的持久化对象


删除对象(Removed)
在数据库中没有和其 OID 对应的记录
不再处于 Session 缓存中
一般情况下, 应用程序不该再使用被删除的对象


游离对象(也叫”脱管”) (Detached):
OID 不为 null
不再处于 Session 缓存中,我们通过session中获取了这个对象,但是我们把session关闭了,他就属于游离,跟临时对象的区别是他在数据库中有记录也就是说OID不为null
一般情况需下, 游离对象是由持久化对象转变过来的, 因此在数据库中可能还存在与它对应的记录




用STM32CubeMX和HAL库,5分钟搞定TB6612驱动直流电机(附完整代码) 本文详细介绍了如何使用STM32CubeMX和HAL库快速配置TB6612驱动直流电机,包括硬件连接、CubeMX工程配置、电机驱动逻辑实现及进阶优化技巧。通过图形化工具和代码示例,即使是新手也能在5分钟内完成电机调速系统的搭建,大幅提升开发效率。 阅读详情

相关推荐

可视化大屏系列(5):设备状态面板与数据分析仪表盘

在这篇文章中,我们将重点讨论如何通过智能化手段提升工地设备的管理效率与维护质量。随着智能工地系统的不断发展,设备监控与维护管理变得尤为重要。本篇将从 设备状态实时监控、自动化维护提醒、设备管理与维修记录 三个方面入手,展示如何通过 Vue3 和 ECharts 构建一个智能化的设备管理平台,实时采集和展示设备运行状态、及时生成维护提醒并记录维修历史,以提高设备的使用效率与安全性。我们还将结合实际代码示例,详细讲解如何实现这些功能,帮助你在智能工地项目中实现设备管理的智能化、数字化和自动化。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 3365

Hibernate 执行原始SQL语句

在hibernate中有时不需要用到表的映射,需要直接执行SQL语句。 其中sessionFactory在配置文件中配置,SSH详细配置见http://blog.youkuaiyun.com/xumengxing/article/details/8586012 在dao层中定义两个常见函数用于查询和执行操作。 dao代码如下: package com.hsinghsu.testSSH.dao.impl

Hsing Hsu's Blog 10万+

Ubuntu更新后VirtualBox报错rc=-1908?手把手教你修复Kernel driver not installed

本文详细解析了Ubuntu更新后VirtualBox报错rc=-1908的原因,并提供了完整的修复方案。通过重新安装VirtualBox、处理DKMS内核模块以及解决Secure Boot问题,帮助用户快速恢复虚拟机功能。特别针对Kernel driver not installed错误,给出了从诊断到修复的详细步骤。

weixin_42519781的博客 340

Java之旅hibernate(4)——hibernate入门示例

上一篇已经把大致的理论解释的很清楚了,这次我们来实战。   通过上一篇的文章,大致知道一个hibernate程序需要的文件和基本的设置了。我们以一个简单的例子来作为入门的例子。   主要包含的结构是:    Hibernate的配置文件:hibernate.cfg.xml    实体类(需要映射的实体类):User    映射对象到表的工具类:ExportDB    映射文件:User

李晓娜 2085

超详细neo4j安装教程

一、neo4j简介 最近开始学习知识图谱,所以首先想先学习一下neo4j的使用。 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。由于知识图谱中存在大量的关系型信息(实体—关系—实体), 使用结构化数据库进行存储将产生大量的冗余存储信息, 因此将图数据库作为知识图谱的存储容器成为流行的选择。当前较为常用的图数据库主要有 Neo4j 等。 二、neo4j的安装 功能快捷键 撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Co

qq_38335648的博客 9万+

【生物识别模组介绍】静脉识别模组

静脉识别技术是依据流动的静脉血液中的血红蛋白对近红外光有所吸收,通过近红外光照射手指、手掌、面部、腕部呈现的分布图像,再使用特定的算法对图像进行特征提取、分析比对,从而进行身份认证识别。静脉结构相同几率为34亿分之一,每个人的静脉结构具有独特性,而且静脉特征图像自成年后终身不变,不受外部环境、疾病等影响,是人体最稳定的生物特征之一。商务合作联系:newmagicmission@gmail.com图1.0。

upupDay's blog 902

我的见解之hibernate(八)

内容:详解*.hbm.xml关系映射配置文件 hibernate-mapping     类层次:class     主键:id     基本类型:property     实体引用类: many-to-one  |  one-to-one     集合:set | list | map | array     one-to-many     many-to-many     子

Java_Soldier的博客 7752

Dell T7910工作站LSISAS3008IR RAID配置全流程:从零到实战避坑指南

本文提供了Dell Precision T7910工作站集成LSISAS3008IR RAID控制器的完整配置与避坑指南。详细拆解了从固件版本确认、安全更新到创建RAID 0阵列的全流程,并重点预警了固件与UEFI安全启动冲突等常见陷阱,帮助用户高效、稳定地部署存储系统。

qq_27496129的博客 1075

我的见解之hibernate(五)

Session的方法 save():使一个临时对象转变为持久化对象,先放入session缓存中,在flush的时候执行一条insert语句,插入数据库。如果在指定了OID的生成方式时,new出对象并尝试给id赋值,也没用,数据库本地依旧采用给定的方式生成主键 News news = new News("JAVA","guo",new Date()); news.setId(50000);

Java_Soldier的博客 7666

2017阿里内推笔试题--算法工程师(运筹优化)

2017阿里内推笔试题–算法工程师(运筹优化)题目沐哲是一个菜鸟仓库的一个拣货员,但他有非常个怪异的习惯。每次拣货的重量都要比之前拣的一个轻,每次拣到货后都可以得到1块钱,沐哲想知道这样最多能赚多少钱 32 34 7 33 21 2 13 12 3 11 26 36 16 30 22 1 24 14 20 23 25 5 19 29 27 15 9 17 31 4 6 18 8 10 3

shawpan的专栏 1万+

保姆级教程:用Cesium的Primitive API实现火箭发射全流程动画(含代码避坑)

本文详细介绍了如何使用Cesium的Primitive API实现火箭发射全流程动画,包括模型控制、关节动画和精细时序管理。通过实战代码示例和性能优化技巧,帮助开发者高效构建高复杂度航天仿真系统,显著提升三维可视化效果与运行效率。

weixin_42565652的博客 215

关于hibernate的见解

Hibernate:     什么是hibernate:         Hibernate它是一个轻量级的jdbc封装,也就是说,我们可以使用hibernate来完成原来我们使用jdbc完成操作,就是与数据库的交互操作。它是在dao层去使用的。         对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping)   

github_39191620的博客 523

激光除草技术原理与应用全解析

激光除草技术通过光热、光化学等效应精准破坏杂草组织,核心参数包括功率(20-6000W)、波长(400nm-10.6μm)和脉冲宽度。主要应用于大田作物(如玉米、棉花)、经济作物(烟草、果树)及城市绿化,具有环保(无化学污染)、高效(识别率≥95%)和非接触等优势,但存在设备成本高(20-50万元)、技术门槛高等局限。当前技术融合AI识别、多光谱协同等创新,国产设备如华工智耘已实现95.3%识别精度。虽短期投入较高,但长期可降低30%除草成本,并带来环境效益(每亩减排1.2吨CO₂)

start_up_go的博客 558

我的见解之hibernate(七)

hibernate.cfg.xml的一些配置        10 5 2 2000 2000 10 100 30 hibernate.jdbc

Java_Soldier的博客 7817

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蓝牙模块HM-10手册

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

我的见解之hibernate(九)

Hibernate 把持久化类的属性分为两种: 值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期 实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期 显然无法直接用 property 映射 pay 属性 Hibernate 使用 元素来映射组成关系, 该元素表名 pay 属性是 Worker 类一个

Java_Soldier的博客 7529

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

我的见解之hibernate(三)

通过Session操纵对象 Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法. Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应. Session 能够在某些时间点, 按照缓存中对象的变化来执行相关的 SQL 语句, 来同步更新数据库, 这一过程被称

Java_Soldier的博客 3033

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

我的见解之hibernate(十三)

HQL检索方式 HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. 它有如下功能: 在查询语句中设定各种查询条件 支持投影查询, 即仅检索出对象的部分属性 支持分页查询 支持连接查询 支持分组查询, 允许使用 HAVING 和 GROUP

Java_Soldier的博客 7695

Hibernate简单得见解

Hibernate.cfg.xml  连接数据库用的  设置数据库方言(dialect)  设置数据库驱动  可设置展示sql以日志形式展示(show_sql) 并且格式化输出sql(format_sql)  更直观可读性高   设置会话的管理方式(和线程进行绑定)指定当前session范围和上下文由谁来跟踪管理   Hibernate中的实体类我觉得很有必要实现Serializable接口 ...

Mr_ZhangAdd的博客 319

我的见解之hibernate(六)

通过 Hibernate 调用存储过程 Work 接口: 直接通过 JDBC API 来访问数据库的操作 Session 的 doWork(Work) 方法用于执行 Work 对象指定的操作, 即调用 Work 对象的 execute() 方法. Session 会把当前使用的数据库连接传递给 execute() 方法.

Java_Soldier的博客 7616

json+hibernate死循环问题的一点见解

Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.json.JSONException: There is a cycle in the hierarch

lkl713的专栏 6194

关于hibernate的一点见解

用了hibernate开发项目已经很久了,尤其是delete(Object obj)方法,我个人一直认为delete只能删除persist状态的对象,正如api所说:voiddelete(Object object)           Remove a persistent instance from the datastore.不过今天我无意之中,使

zcl198715的专栏 508

Hibernate(四)

1. JPA相关概念 1.1 JPA概述 全称是:Java Persistence API。是SUN公司推出的一套基于ORM的规范。Hibernate框架中提供了JPA的实现。 JPA通过JDK 5.0注解或XML描述对象—关系表的映射关系,并将运行期的实体对象持久化到数据库中。 1.2 JPA的优势 标准化 JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不

Wgy1993的博客 310

我的见解之hibernate(十)

映射双向n-1关系: 举个简单的例子,顾客和订单的关系,一个顾客可以拥有多个订单,而多个订单可以同时属于一个顾客,这就是双向n-1关系, 在Customer一端,需要持有装载着Order集合的引用 /* * 1. 声明集合类型时, 需使用接口类型, 因为 hibernate 在获取 * 集合类型时, 返回的是 Hibernate 内置的集合类型, 而不是 JavaSE 一个标准的

Java_Soldier的博客 7481

《Hibernate学习笔记四》:Hibernate核心接口介绍

《Hibernate学习笔记四》:Hibernate核心接口介绍在前面的例子中,我们经常看到这样的代码:public class TeacherTest { private static SessionFactory sf=null; @BeforeClass public static void beforeClass(){ //读取配置 文件 hiberna

wojiushimogui的博客 1038

我的见解之hibernate(二)

下面补全对上篇文章第四步的几个变量解析 SessionFactory sessionFactory = null;   Configuration configuration = new Configuration().configure();  ServiceRegistry serviceRegistry = new S

Java_Soldier的博客 3083

我的见解之hibernate(十二)

hibernate的检索策略 检索数据时的 2 个问题: 不浪费内存:当 Hibernate 从数据库中加载 Customer 对象时, 如果同时加载所有关联的 Order 对象, 而程序实际上仅仅需要访问 Customer 对象, 那么这些关联的 Order 对象就白白浪费了许多内存. 更高的查询效率:发送尽可能少的 SQL 语句 类级别的检索策略 类级别可选的检索策略包括立即检索

Java_Soldier的博客 7283
上一篇: 我的见解之hibernate(三)
下一篇: 我的见解之hibernate(五)
Java_Soldier
博客等级 码龄10年 27粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值