springdatajpa 中get××方法与find××方法的区别
前言
如果是数据库中的delete,update和insert操作,则不需要显式的在Repository的子接口中定义方法。
具体可以去中文论坛查找相关资料。下面主要讨论select操作时get和find的区别。
下面列举的就是springdatajpa的官方文档内容。
getOne()方法
getOne()返回对具有给定标识符的实体的引用。getOne在内部调用EntityManager.getReference()方法。根据文档,此方法将始终返回代理,而不会访问数据库(延迟获取)。如果请求的实体在数据库中不存在,则此方法在实际访问时将引发EntityNotFoundException。
findById()方法
该方法实际上将命中数据库,并将实际对象映射返回到数据库中的一行。如果数据库中没有记录,则是EAGER加载的操作返回null。
这些方法之间的唯一真正区别在于性能。延迟加载的getOne()方法避免了从JVM进行数据库往返,因为在真正访问返回的代理对象的属性之前,它从不访问数据库。
注:某中文论坛上有人说,用getOne取得这个对象,加断点看一下这个对象是个hibernate的代理对象,而不是实体,里面基本没有值。然后换成findOne试了一下,断点查看这个取出来的对象,这个对象是实体,关联也有。
总结
1.get方法select不到数据则报错,find方法select不到数据则返回null。
2.get延迟加载,在真正访问返回的代理对象的属性之前,它从不访问数据库。find则立即加载,将返回到数据库中的一行映射到实际的某个对象。
springdatajpa 中get××方法与find××方法的区别相关推荐
- python中break和continue的区别
python中break和continue的区别 break 结束for 或者while 循环 后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...
- java中separator_java - File.separator和路径中的斜杠之间的区别
java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...
- PHP中self和static的区别,php中self与static的区别
原文链接,猛击这里. php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别.假定我们有class Car – 它有两个方法,model和getModel. ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
- php $this self,php中self与$this的区别
学习php中self与$this的区别. 先来看下parent与self的例子: /* * parent与self的区别 * by www.jbxue.com */ class A{ function ...
- mysql中char与varchar的区别分析(补充一句,int和integer没区别)
转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...
- python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...
昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...
- python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法
python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录
- SQL中where与having的区别
SQL中where与having的区别 目录 SQL中where与having的区别 创建表 插入数据 进行聚合操作 # WHERE是在聚合之前进行数据行的过滤而HAVING实在聚合之后进行新数据的过 ...
最新文章
- 命令行创建React项目
- oracle rac 磁盘重建,Oracle RAC环境下重建ASM磁盘组 Re-create ASM diskgroup with Oracle RAC...
- 那些年,面试被虐过的红黑树 1
- Android开发:程序目录结构详解:activity主要方法等
- MySQL高级 - 常用工具 - mysql
- 使用ViewPager制作Android引导界面
- 前端_网页编程 Ajax加强
- java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转
- flask-sqlAlchemy 创建表
- 潭州课堂25班:Ph201805201 tornado 项目 第八课 增加喜欢功能(课堂笔记)
- addr2line -f -e *.so 0x9d69
- 11.ar, nm, objdump
- 谷歌云实现Google Drive无限空间离线下载(完美版)
- 安卓psp模拟器哪个好_psp模拟器安卓完美版下载_psp模拟器完美版手机版下载_玩游戏网...
- 机器人潘森护盾_新版潘森无伤抗塔 还能抵消死歌大招?E技能护盾机制全解析...
- freemarker加载模板目录的方法
- 伺服电机(舵机)简单介绍
- WPF动画——故事板(Storyboard)
- Android 说说Bitmap那些事
- Android项目之二手交易淘学院APP
热门文章
- 【solo】环境配置
- Python模拟电脑按键
- (转)处理微信昵称emoji方法
- HSV图像与RGB图像分布代表着什么意思
- html5 head标签
- java ios内购凭证_iOS内购看我就够了(含代码)
- 数据结构__头插法建立单链表、尾插法建立单链表
- 关于计算机软件的英语视频,英语配音秀电脑版
- GPT-4大爆炸:如何用AI技术革新软件测试开发领域
- 淘宝API开发系列:淘宝图片搜索API / item_search_img-按图搜索淘宝商品(拍立淘)/图片搜索API调用值说明