休眠中动态获取和静态获取之间有什么区别

时间:2018-11-24 10:12:04

标签: hibernate dynamic static

我是新的休眠用户。我正在阅读本网站提供的用户指南 http://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#fetching 他们开始谈论静态和动态提取,而没有对单词进行介绍。什么是静态和动态获取?

1 个答案:

答案 0 :(得分:0)

在ORM(对象关系映射)中,获取是将相关数据加载到内存中的方式...

假设您提供的链接的示例390,当您从持久层加载员工时,您有两个关于员工部门的选项:

1)要么指示ORM(休眠)在加载员工后立即加载部门信息,要么

2)指示ORM仅在需要时才加载相关部门;即当您致电employee.getDepartment().getName();

根据您的需求,您将选择这两个选项之一。为了告诉ORM您选择了什么选项,请使用静态获取或动态获取...

静态获取是通过注释(或XML)完成的,它被认为是静态的,因为一旦编写它,就无法在运行时对其进行更改...(请注意,像@ManyToOne这样的关系注释会通过默认)

动态获取是通过程序配置或运行时查询完成的,可让您指示何时(如何)将相关数据加载到内存中...