package com.gc.sis.core; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.xml.bind.annotation.XmlRootElement; @Entity @Table(name="illu") @XmlRootElement public class Illu { @Id @GeneratedValue(strategy=GenerationType.AUTO) private int id; private int singlePrem; //级联保存,删除等 //FetchType.EAGER 不延迟,立即加载关联对象 @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER) private Set<Client> clients; //级联保存,删除等 //FetchType.EAGER 不延迟,立即加载关联对象 @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER) private Set<Rider> riders; public Illu() { super(); } public int getId() { return id; } public int getSinglePrem() { return singlePrem; } public void setSinglePrem(int singlePrem) { this.singlePrem = singlePrem; } public Set<Client> getClients() { if(clients==null) clients = new HashSet<Client>(); return clients; } public void setClients(Set<Client> clients) { this.clients = clients; } public Set<Rider> getRiders() { if(riders==null) riders = new HashSet<Rider>(); return riders; } public void setRiders(Set<Rider> riders) { this.riders = riders; } }
多对一双向关联,使用mappedBy=“xxx” ,即inverse=true的效果
@LazyCollection(LazyCollectionOption.EXTRA)
private Set<Rider> riders;
抓取策略:
在一的一端单个抓取关联对象(1个Group对象,去抓取其关联的ContactPerson对象)
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)private Set<Client> clients;
相关推荐
今天我们要讨论的是Hibernate框架中的一个关键概念——抓取策略,特别是针对"many-to-one"关系的抓取策略。这篇博客将深入剖析这个主题,帮助你更好地理解和应用Hibernate。 Hibernate是Java领域中最流行的对象关系...
本篇主要关注的是Hibernate的抓取策略,特别是批量抓取技术,这对于提高应用程序性能至关重要。批量抓取能够减少数据库交互次数,从而优化查询效率。 首先,我们要理解什么是抓取策略。在Hibernate中,抓取策略是指...
今天我们要探讨的是Hibernate的抓取策略,特别是针对set集合的策略。在大型应用中,有效地管理数据加载能显著提升性能,减少数据库交互次数,这就是抓取策略的核心作用。 首先,我们需要理解什么是抓取策略。在...
### JPA与Hibernate注解详解 #### 一、引言 Java Persistence API (JPA) 是一种用于管理Java应用程序中的关系数据的标准规范。它提供了一种面向对象的方式来处理数据库记录,使得开发人员能够更容易地与数据库进行...
hibernate3数据检索、抓取策略 、 注解的使用
### Hibernate注解与关系映射详解 #### 一、Hibernate注解基础 **1.1 @Entity** - **概述**:`@Entity`用于标记一个Java类为实体类,表明它是一个持久化对象,可以映射到数据库表。 - **参数**: - `name`:可选...
- **fetch**:抓取策略,默认为`EAGER`。 - **optional**:指定是否允许为空,默认为`true`。 - **cascade**:级联操作策略,默认为`NONE`,可以设置为`ALL`、`SAVE_UPDATE`、`DELETE`等。 通过以上注解的使用,...
- `fetch`:可选,指定抓取策略,默认为 `EAGER`。 - `cascade`:可选,指定级联操作策略。 - `optional`:可选,是否允许为空,默认为 `true`。 - **用法**:放在属性上。 ```java @Entity public class Post...
- **抓取配置注解**:`@FetchProfile` 控制懒加载行为。 #### 四、查询映射 ##### 4.1 JP-QL/HQL 查询映射 - **命名查询**:使用 `@NamedQuery` 注解定义命名查询,便于代码中调用。 - **原生 SQL 查询映射**:...
文档中还特别强调了配置属性,如SQL方言、外连接抓取、二进制流处理、自定义CacheProvider、事务策略、SessionFactory绑定到JNDI以及查询语言替换。这些配置选项对于优化应用程序性能和适应不同数据库系统至关重要。...
- 详细解释如何使用XML映射文件或注解来定义实体类与数据库表之间的映射关系。 - **Entity:** - 定义映射的基本单位——Entity。 - **Identifiers:** - 主键的生成策略和映射方式。 - **Optimistic locking ...
2. Hibernate的实体类设计、映射文件(XML或注解)配置、CRUD操作以及事务管理。 3. ActiveMQ的基本概念,如生产者、消费者、队列和主题,以及如何在Java代码中使用JMS API发送和接收消息。 4. 网络爬虫的工作原理,...
- **实现NamingStrategy**:定义命名策略以定制Hibernate生成的SQL语句中的表名和字段名。 - **XML配置文件**:解释如何使用XML文件来配置Hibernate。 - **J2EE应用程序服务器的集成**:介绍Hibernate与J2EE应用程序...
- 主键是数据库表中唯一标识记录的字段,Hibernate提供了多种主键生成策略,如`increment`、`identity`、`sequence`等。 4. **核心开发接口** - Hibernate的核心接口包括`Session`、`SessionFactory`、`...
- `fetch`:抓取策略,默认为`EAGER`。 - `cascade`:级联操作,可以是`ALL`(所有操作)、`PERSIST`(保存)、`MERGE`(合并)、`REFRESH`(刷新)和`REMOVE`(删除)。 ### 示例 假设我们有一个`User`实体类,...
- Hibernate支持多种抓取策略,包括立即抓取(`EAGER`)和延迟抓取(`LAZY`)。 #### 树状结构 - 实现树状结构是Hibernate中的一个高级主题,通常涉及到递归查询或使用特定的树结构算法。 #### HQL查询语言 - **...
19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...
19.1.2. 调整抓取策略(Tuning fetch strategies) 19.1.3. 单端关联代理(Single-ended association proxies) 19.1.4. 实例化集合和代理(Initializing collections and proxies) 19.1.5. 使用批量抓取(Using...
- **外连接抓取**:控制Hibernate是否使用外连接来优化查询性能。 - **二进制流**:处理大对象类型时的相关配置。 - **二级缓存与查询缓存**:提高应用程序性能的重要机制之一。 - **查询语言中的替换**:使用...