按照hibernate reference所说
写道
If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force
Hibernate to fetch the lazy properties in the first query immediately using fetch all properties.
from Document fetch all properties order by name
from Document doc fetch all properties where lower(doc.name) like '%cats%'
只要加了fetch all properties,在这个list被执行出来后,即使我close session,应该还是可以访问Document中的(lazy-loading)属性的,但我自己的做的实验显示这个"fetch all properties"加和不加完全没有区别,该是lazy loading的还是一个都没加载。
在hibernate的jira找到了这样的bug,但其fixed version是3.1 beta 1,而我的hibernate 是 hibernate-core-3.3.0.SP1.jar,这是咋回事,莫非reopen了?
忍不住再吐槽一下,用toplink时只有oralce 一家support,但基本都能找到答案,用hibernate一会儿要上官网,一会儿上stackoverflow,还经常找不到答案,开源啊开源~~
分享到:
相关推荐
hibernate.properties # # Hibernate, Relational Persistence for Idiomatic Java # # License: GNU Lesser General Public License (LGPL), version 2.1 or later. # See the lgpl.txt file in the root directory...
如果某个对象属性被配置为延迟加载,可以使用`fetch all properties`来强制Hibernate在首次查询时立即加载所有属性,如`from Document fetch all properties order by name`。这有助于避免多次数据库交互。 总的来...
- **Fetch策略**:使用`fetch all properties`可以在第一次查询时立即加载原本需要懒加载的属性。例如`from Document fetch all properties where lower(doc.name) like '%cats%'`。 #### 七、总结 HQL是Hibernate...
- 使用 `fetch all properties` 可以强制Hibernate立即加载那些默认情况下需要延迟加载的属性,从而提高第一次查询时的数据完整性。例如,`from Document fetch all properties order by name`。 #### 三、SELECT ...
本文将深入探讨Hibernate Annotations API中文版中的关键概念和用法。 一、实体(Entity) 在Hibernate中,实体是与数据库表相对应的Java类。通过`@Entity`注解,我们可以标记一个Java类为实体。例如: ```java @...
@OneToMany(mappedBy = "class", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List<Student> students; // getters and setters } @Entity public class Student { @Id @GeneratedValue...
- **延迟加载**:如果使用属性级别的延迟加载(默认通过字节码重写实现),可以使用`fetch all properties`来强制Hibernate立即加载原本延迟加载的数据。 #### 六、总结 HQL是一种强大且灵活的查询语言,专门用于...
在Java世界中,Java Persistence API (JPA) 是一种用于管理关系数据库的框架,它使得对象-关系映射(ORM)更加便捷。...在实际开发中,根据项目需求,你可能还需要考虑懒加载、fetch策略、级联操作等方面的优化和调整。
在Maven项目的pom.xml文件中,我们需要包括Spring Data JPA、Hibernate(一个流行的JPA实现)和相关的数据库驱动。例如,如果使用MySQL,需要添加以下依赖: ```xml <!-- Spring Data JPA --> <groupId>org....
在`application.properties`文件中设置JDBC连接信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/testdb spring.datasource.username=root spring.datasource.password=password ...
在本项目中,"springboot实现从数据库取数传到前端demo",我们将探讨如何使用Spring Boot框架构建一个能够从数据库获取数据并将其传递到前端的应用。Spring Boot简化了Java应用的开发,使得开发者可以快速地搭建具有...
- 配置数据源:在`application.properties`或`application.yml`中设置数据库连接信息。 - 创建实体类:用JPA注解如`@Entity`,`@Table`等定义实体模型。 - 创建Repository接口:继承Spring Data JPA提供的接口,...
3. **Fetch类型和Cascade类型**:`fetch = FetchType.LAZY/EAGER`决定何时加载关联数据,`cascade = CascadeType.ALL/PERSIST/REMOVE`控制操作的级联行为。 4. **JOIN TABLE和ORPHAN REMOVAL**:对于复杂的一对多...
- **配置数据源**:在application.properties或application.yml中配置数据库连接信息。 - **实体类**:定义实体类,并使用`@Entity`注解标记,用`@Id`注解指定主键。 - **Repository接口**:创建Repository接口,...
2. 配置数据源:在Spring Boot应用中,通常通过`application.properties`或`application.yml`配置数据库连接信息。 3. 配置JPA:设置JPA的属性,如实体扫描路径、数据库方言、缓存等。 4. 创建Repository接口:这...