在查询的时候有两个方法:find()和getReference(),这两个方法的参数以及调用方式都相同。那么这两个方法有什么不一样的呢?

find()称为 立即加载,顾名思义就是在调用的时候立即执行查询语句。

getReference()称为 延迟加载 或者 懒加载,它在调用的时候不会立即执行查询语句,而是在使用到查询对象的时候才会执行查询语句。

具体如下:

使用finde方法查询:

  1. 查询的对象就是当前对象本身
  2. 在调用find方法的时候,就会执行sql语句查询数据库

使用getReference方法查询:

  1. 查询到的对象是一个动态代理对象,并不是对象本身
  2. 在调用getReference方法的时候,不会执行sql语句查询数据库。当调用查询结果对象的时候,才会执行查询sql语句(什么时候用什么时候执行sql语句)

JPA 中 find() 和 getReference() 的区别的更多相关文章

  1. hibernate中@Entity和@Table的区别

    Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...

  2. 4、JPA table主键生成策略(在JPA中table策略是首推!!!)

    用 table 来生成主键详解 它是在不影响性能情况下,通用性最强的 JPA 主键生成器.这种方法生成主键的策略可以适用于任何数据库,不必担心不同数据库不兼容造成的问题. initialValue不起 ...

  3. 对比JPA 和Hibernate 和 Mybatis的区别

    1.JPA.Hibernate.Mybatis简单了解 1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现. 2.Hibernate:目前最流行的ORM框架,设计灵巧,文档丰富 ...

  4. 【转】为什么我们都理解错了HTTP中GET与POST的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  5. Visual Studio 中 Build 和 Rebuild 的区别

    因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...

  6. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...

  7. java集合中List与set的区别

       java集合中List与set的区别.     List可以存储元素为有序性并且元素可以相同.     set存储元素为无序性并且元素不可以相同.     下面贴几段代码感受一下: ArrayL ...

  8. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  9. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

随机推荐

  1. 太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!

    大家好,我是良许. 作为 Linux 用户,大家肯定在 Linux 终端下敲过无数的命令.有的命令很短,比如:ls .cd .pwd 之类,这种命令大家毫无压力.但是,有些命令就比较长了,比如: $ ...

  2. CF948D Perfect Security

    题目链接:http://codeforces.com/contest/948/problem/D 知识点: Trie 题目大意: 给出两个长度为 \(N(1 \le N \le 300000)\) 的 ...

  3. 【MySQL】Centos7 yum安装MySQL5.7.25

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 安装操作 下载并安装MySQL官方的Yum ...

  4. dede搜索页做法

    触发搜索页代码 <p class="fl"> <span>热门搜索:</span> {dede:hotwords num=8 subday=36 ...

  5. Java 对象的封装,继承,抽象,接口写法

    面向对象的封装写法        关键字 private class A    {        private int a=1;        private void work()         ...

  6. Java——异常处理,数据库连接

    在学习数据库连接时看到try(){}结构,查了一下写在这里: import java.sql.Connection; import java.sql.DriverManager; import jav ...

  7. 【转】动态规划:最长递增子序列Longest Increasing Subsequence

    转自:https://www.cnblogs.com/coffy/p/5878915.html 设f(i)表示L中以ai为末元素的最长递增子序列的长度.则有如下的递推方程: 这个递推方程的意思是,在求 ...

  8. 微软:悬赏10万美金破解 Linux 系统

    微软选择了 Linux 系统作为物联网平台,并且悬赏10万美金邀请黑客来进行破解. 当然,该悬赏计划不是针对所有的 Linux 系统,而是特别针对微软的物联网端对端安全平台Azure Sphere.本 ...

  9. 泛微 e-cology远程代码执行漏洞

    影响版本:泛微 e-cology<=9.0 漏洞分析: 问题出现在 resin 下 lib 中的 bsh.jar 文件里,问题类 bsh.servlet.BshServlet,可 doGet 方 ...

  10. git的相关基础操作

    一.git安装 从https://git-scm.com/下载相应版本安装即可,一路默认安装到底即可,安装目录可以自行选择 二.git配置 安装完git后在任意文件夹内单击鼠标右键,会出现Git GU ...