`
hehailin1986_163.com
  • 浏览: 154505 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hiberante 多对多中集合查询

    博客分类:
  • Java
阅读更多
    在一个测试项目中,用到了Hibernate中的多对多关系(假如是A和B),不是怎么好处理,特别是查询集合的时候有点郁闷,之前的做法都是先找到一个对象(A),在从这个对象上找到它的集合(A.bSet)。利用jpa的注解方式,偶尔会出现延迟加载的问题。在网上搜了一下,发现有个比较好的方法,可以通过hql语句操作找到bSet。
例如:
public class Client {
   //other属性
   @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST,
			CascadeType.MERGE })
   @JoinTable(name = "device_client")
   public Set<Device> devices;
}

public class Device{
   private Long id;
   //other属性
   @ManyToMany(mappedBy = "devices")
   public Set<Client> clients;
}


要取得一个client对象的devices集合对象,可以在DAO层执行一条HQL语句,此时的操作是对对象而言的:
FROM Device d WHERE d IN ( select elements(c.devices) FROM Client c WHERE c.id=:clientId

即可得到一个根据clientId在第三个关系表中获取的集合。仅此记录只用。





分享到:
评论

相关推荐

    Hiberante3相关文档

    标题“Hiberante3相关文档”表明了主要讨论的是关于Hibernate3这一持久化框架的资料集合,可能涵盖了多个方面,如查询语言、缓存机制以及数据加载策略。 描述中的“Hiberante3_HQL”提示我们将会涉及到Hibernate...

    Hiberante 有关jar包

    Hibernate Tools是一套全新而且完整的面向Hibernate3的工具集合,它包含了Eclipse插件和Ant编译流程。Hibernate Tools是JBoss Tools的核心组件,所以他也是JBoss Developer Studio的一部分

    hiberante annotations reference.pdf

    用于指定集合中的顺序,常与`@ElementCollection`一起使用。 ### 总结 以上介绍了一些基本的Hibernate注解,这些注解是进行ORM映射的基础。了解这些注解对于正确地实现持久化逻辑至关重要。值得注意的是,随着...

    Struts2+hiberante+Spring+Extjs+OA办公系统,完整包

    这是一个强大的框架集合,用于构建高效、可扩展且易于维护的企业级应用程序,特别是针对办公自动化的需求。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织应用程序...

    hiberante - one to many - update

    // 多对一关联,Order属于某个User private User user; // getters and setters } ``` 在配置映射文件或使用注解时,我们需要指定这两个类之间的关联。例如,使用注解的方式: ```java @Entity public class ...

    hiberante3.2源码

    10. **一对多、一对一、多对多关联映射**:Hibernate 3.2 提供了对这些关系映射的完整支持,开发者可以通过注解或XML配置来定义这些关联。 通过深入学习 Hibernate 3.2 的源码,开发者可以更好地理解其内部工作原理...

    hiberante 参考手册 最新版 中文版 3.6.8

    - **映射Person类**: 继续使用`Person`类作为示例,介绍如何映射一对一、一对多、多对多等各种关联类型。 - **单向Set-based的关联**: 通过集合类型来表达实体间的单向关联关系。 - **使关联工作**: 解释如何配置...

    hiberante4、jdk6帮助文档chm

    "JDK 6中文文档.CHM"提供了JRE(Java运行环境)和JDK工具的详细信息,包括核心类库、异常、多线程、I/O、网络编程、反射、集合框架、Swing GUI组件、国际化、安全管理以及JVM工具(如javac编译器、javadoc文档生成器...

    Struts2 Spring Hiberante IBatis jar (2)

    这个压缩包文件"Struts2 Spring Hibernate IBatis jar (2)"很可能是这些框架的库文件集合,用于支持基于Java的Web应用程序的开发。 首先,让我们逐一解析这四个框架的核心功能: 1. **Struts2**:Struts2是一个...

    疯狂Ajax讲义+Spring+hiberante

    【标题】"疯狂Ajax讲义+Spring+hibernate" 涵盖了现代Web开发中的几个关键领域,包括Ajax技术、Spring框架以及Hibernate ORM工具。这个资源集合旨在帮助开发者深入理解和掌握这些技术,以便构建高效、动态和交互性强...

    job4j_hiberante:课程作业4。 学习Hibernate

    6. **级联操作**:如何处理一对多、多对一、多对多的关系,以及它们的级联保存、更新和删除。 7. **延迟加载(Lazy Loading)**:理解何时及如何使用懒加载以提高性能。 8. **缓存机制**:第一级缓存(Session缓存)...

    NHiberante Demo

    1. `WPFSamples.sln`:这是一个Visual Studio解决方案文件,包含多个项目的集合,可能包括本示例的主程序和相关测试项目。 2. `WpfSchemaExport`:很可能是一个专门处理SchemaExport操作的WPF应用程序,用于演示如何...

    hibernate应用[包括示例,映射,主键自增,各种查询操作方式以及配置文档以及 Annotation示例]

    - **Hiberante的对象继承关系之--TPC一个类一张表.doc**:讲述Hibernate处理对象继承和多表映射的方法。 - **hibernate 非主键自增.doc**:关于非主键字段如何实现自动增长的策略。 - **Struts和Hibernate之间搭起...

    Hibernate参考文档(CHM).

    2. **对象关系映射(ORM)**:详细阐述了如何定义实体类(Entity),使用注解或XML文件进行数据表映射,包括主键生成策略、属性映射、关联映射(一对一、一对多、多对一、多对多)等。 3. **Session接口**:作为与...

    hibernate\Hibernate开发资料整合1

    描述中的“Hibernate开发资料整合”进一步确认了这是一个关于Hibernate的集合,可能是为了帮助开发者系统学习和理解Hibernate的各种概念和技术。这可能包括了Hibernate的核心概念,如实体管理、数据持久化、查询语言...

    hibernate3.6.6

    1. **Hibernate核心库**:`hibernate3.6.6`中的主要jar文件是`hibernate3.jar`,它包含了Hibernate的核心组件,包括实体管理、查询API、事件系统以及缓存机制等。这些组件使得开发者能够通过对象模型与数据库进行...

    hibernateTemplate批量删除数据

    在这段代码中,我们定义了一个`bulkDelete`方法,接受一个`Object[]`类型的参数`ids`,代表待删除记录的ID集合。`queryString`变量存储了HQL语句,其中`PersistentModel`是待删除数据对应的实体类名,`id in (:ids)`...

    java学习之路,java学习书籍

    Java学习之路是一个全面而深入的探索,尤其对初学者来说,是掌握这门语言的关键所在。Java作为一种广泛应用的编程语言,其重要性不言而喻,不仅在企业级应用开发中占据主导地位,而且在网络服务、移动应用以及大数据...

Global site tag (gtag.js) - Google Analytics