`

hibrenate @ManyToOne(fetch = FetchType.EAGER) 和 lazy 区别

 
阅读更多
         如果是EAGER,那么表示取出这条数据时,它关联的数据也同时取出放入内存中

如果是LAZY,那么取出这条数据时,它关联的数据并不取出来,在同一个session中,什么时候要用,就什么时候取(再次访问数据库)。

但是,在session外,就不能再取了。用EAGER时,因为在内存里,所以在session外也可以取。



一般只在一边设Eager,JPA接口默认为一对多为Lazy,多对一为Eager,但是Hibernate反向工程生成Entity时,多对一为Lazy,需要手动改为Eager。



而两边都设Eager,那么代码中取一条记录时,会发2次SQL。
分享到:
评论
1 楼 sky_dami 2015-03-10  
 

相关推荐

    Hibernate 1+N问题详解

    Hibernate的两个类设置了manyToOne之后,在查询的时候, 由于N 对1的一方默认的fetch=FetchType.EAGER,所以会 把被关联的对象一起取出来

    hibernate manytoone

    本代码为hibernate的manytoone的代码 博文链接:https://shaqiang32.iteye.com/blog/201307

    JPA例子(里面有一对一,一对多的例子)

    @ManyToOne(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY) @JoinColumn(name = "personid", unique = false, nullable = true, insertable = true, updatable = true) public Person getPerson() { ...

    Hibernate注释大全收藏

    @Basic(fetch = FetchType.LAZY) String getDetailedComment() { ... } // persistent property @Temporal(TemporalType.TIME) java.util.Date getDepartureTime() { ... } // persistent property @Enumerated(Enum...

    Hibernate注解

    fetch指定是否延迟加载,值为FetchType.LAZY表示延迟,为FetchType.EAGER表示立即加载 * 方法一 使用这种配置,在为“一端”添加“多端”时,不会修改“多端”的外键。在“一端”加载时,不会得到“多端”。如果使用...

    Hibernate_Annotation关联映射

    @ManyToOne(fetch = FetchType.LAZY) @JoinTable(name="Test_Tree_Forest", joinColumns = @JoinColumn(name="tree_id"), inverseJoinColumns = @JoinColumn(name="forest_id") ) public ForestType ...

    javax.persistence.jar

    javax.persistence.criteria.Fetch.class javax.persistence.criteria.FetchParent.class javax.persistence.criteria.From.class javax.persistence.criteria.Join.class javax.persistence.criteria.JoinType....

    hibernate 关联映射(一) many to one

    第一阶段的工程 博文链接:https://selvemen.iteye.com/blog/458615

    详解Hibernate cascade级联属性的CascadeType的用法

    详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。若对触发器来修改或删除关联表相记录,必须...

    hibernat面试题

    @ManyToOne-->表示多对一关系 双向 @OneToMany(mappeBy="") 关系交给对方维护 3多对多 @ManyToMany-->代表多对多 @ManyToMany(mappeBy="")mappeBy-->通过此属性把关系交给对方维 注意:一般出现多对多的情况时...

    JPA 标注 JPA标签手册

    o @ManyToOne o @MapKey o @MappedSuperclass • N o @NamedNativeQueries o @NamedNativeQuery o @NamedQueries o @NamedQuery • O o @OneToMany o @OneToOne o @OrderBy • P o @PersistenceContext o @...

    spring-filter:使用简单的查询语法动态过滤JPA实体。 提供JPAHibernate谓词和Spring规范

    弹簧过滤器您需要一种无需任何努力即可动态过滤实体的方法吗? 只需将我添加到您的pom.xml 。 您的API将获得功能全面的搜索功能。 您不使用API​​吗?... @ManyToOne Brand brand; @OneToMany Lis

    BOS 技术整理

    "CURD " 但是和Hibernate一样 实现DAO(数据)层的功能 "增删改查" Hibernate 实体类 生成表结构 ---- 领域(Domain)驱动建模 这次使用的是驱动建模,传统的设计模式是: 先设计表,再创建实体 JPA 注解使用 @...

    D语言的ORM框架HibernateD.zip

    HibernateD 是 D 语言的 ORM 框架,类似 Java 的 Hibernate,示例代码:import hibernated.core; // Annotations of entity classes class User {  long id;  string name;  Customer customer;  @...

    SpringBoot-SpringData-ManyToOne

    SpringBoot-SpringData-ManyToOne,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/52850062

    MySQL使用外键实现级联删除与更新的方法

    主要介绍了MySQL使用外键实现级联删除与更新的方法,详细分析了mysql数据库与表的创建、数据插入、查询以及外链的使用与级联操作相关技巧,需要的朋友可以参考下

    电子商务:Spring Boot电子商务项目示例

    0.0.1-SNAPSHOT.jar运行前端: ng serve -o文件Github项目-https: 主要困难业务/域规则,已多次更改在后端建立关系@OneToMany-@ManyToOne 后端全球CORS 后端验证组织Dockerfile和docker-compose.yml

    CodeIgniter-Model:CodeIgniter Model是CI_Model的扩展类,它使您可以轻松地操纵CRUD操作。 它支持多语言和表之间的关系

    使用诸如oneToMany,ManyToOne之类的关联来获取数据 将过滤器应用于结果 分页... 安装 CodeIgniter Versoin> = 2.xx 将文件MY_Model.php复制到application/core/文件夹。 用法 创建一个从MY_Model扩展的模型并设置...

Global site tag (gtag.js) - Google Analytics