在我的项目中,有一个如下场景:
工程实全类:Engineering.java与职员实体Staff.java分别处在两个不能项目中,物理上是在两个不同的MAVEN项目中,在工程类中建立如下MTM关系:
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinTable(name = "co_engineering_staff", joinColumns = { @JoinColumn(name = "ENGINEERING_ID") }, inverseJoinColumns = { @JoinColumn(name = "STAFF_ID") })
@OrderBy("staffId")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private Set<Staff> engineeringStaff = new LinkedHashSet<Staff>();
建立了这样的关系后,系统将生成一个新的Table:co_engineering_staff
而在Staff.java中就不想再建立这样的关系,主要不想让一个基础工程类中保留各种关于应用工程的数据。
问题:如果我想得到某个Staff对应的所有工程,其中,有些工程的有效属性已经为False的不需要检索,如何来写这个QUERY呢?
笨方法:新生成一个entity 对应co_engineering_staff,在这上面写QUERY,然后拼成SQL条件为“IN”来得到Engineering list。
有什么更好的办法吗?
分享到:
相关推荐
在Hibernate中,我们可以通过`@ManyToMany`注解来定义这种关系,并使用`@JoinTable`注解来指定中间表的信息。例如: ```java @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType....
在Java的持久化框架Hibernate中,`@ManyToMany`注解是用于处理数据库中的多对多(Many-to-Many)关系。多对多关系是指一个实体可以与多个其他实体相关联,反之亦然。这种关系在数据库表设计中通常通过中间表来实现,...
本文将深入探讨如何在Hibernate中实现多对多(ManyToMany)的关系映射,以及相关的重要概念和技术细节。 在数据库设计中,多对多关系是最常见的一种关联类型,例如,一个学生可以选修多门课程,一门课程也可以被多...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...
【标题】与【描述】提及的是“Hibernate面试题专栏”,主要涵盖了全面的Hibernate面试题、笔试题以及相关问题,这表明我们将要讨论的是Java领域中著名的对象关系映射框架——Hibernate的相关知识。Hibernate是一个...
以上是关于Hibernate关联关系的一些基本概念和使用技巧,深入理解和应用这些知识能够帮助开发者更高效地使用Hibernate进行数据库操作。如果你在实践中遇到了具体的问题,可以参考相关文档、教程或社区讨论来获取更...
- Hibernate支持各种复杂的关联关系,如@OneToMany、@ManyToOne、@OneToOne、@ManyToMany等。 - 关联映射通常涉及外键和级联操作。 7. **集合映射** - Hibernate支持List、Set、Map等多种集合类型的映射,以便...
在Hibernate中,可以通过`@ManyToMany`注解定义多对多关系,并使用`@JoinTable`定义连接表。例如,Student实体和Course实体的多对多关系: ```java @Entity public class Student { @ManyToMany @JoinTable...
在Java的持久化框架Hibernate中,多对多(Many-to-Many)关系映射是一种常见的数据库交互模式,它用于表示两个实体之间复杂的关系。在这个场景中,一个实体可以与多个其他实体相关联,反之亦然。例如,在学生和课程...
Hibernate 支持多种数据库表之间的关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。通过 `<one-to-one>`、`<list>`、`<set>` 等元素可以定义这些关系,并指定...
10. **一对一(OneToOne)、一对多(OneToMany)、多对多(ManyToMany)关系映射**:Hibernate提供了多种关联映射方式,帮助处理复杂的数据关系。 11. **继承映射**:Hibernate支持单表继承、联合继承和表-per-...
Hibernate支持一对一和多对多关系的映射,分别通过`@OneToOne`和`@ManyToMany`注解实现。这些映射策略使得复杂的关联关系能够在Hibernate中得到清晰的表示。 #### 延迟加载(LazyInitialization) 延迟加载是一种...
本资源主要探讨了Hibernate中的四种主要的多表关系映射,包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。接下来,我们将深入讲解这四种关系及其在实际开发中的应用。 1...
《Hibernate参考指南中文版》与《Hibernate中文手册》是学习Java领域中ORM(对象关系映射)框架Hibernate的重要参考资料。Hibernate作为一个开源的、强大的持久化框架,极大地简化了数据库操作,使得开发人员能够以...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java对象和数据库之间建立一个灵活的映射层。这个框架使得开发人员无需编写大量的SQL代码,就能处理数据库操作,提高了开发效率和代码的可维护性...
问题:如何跨多对多关系的两个实体投影列示例:员工(id、名字、姓氏)会议(id、主题、会议日期) 假设我们有员工数据 1 , A, AA 2 , B, BB 会议 1,AB 会议,X 2,另一个会议,X 3,仅 B Employee_Meeting AB A 和...
1. **关联映射配置**:在Hibernate中,多对多关系需要通过`@ManyToMany`注解进行配置。这个注解用于定义两个实体类之间的多对多关系,并指定关联表的字段和外键。例如: ```java @Entity public class Student { @...
Hibernate支持多种关联关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)、多对多(ManyToMany)。关联映射需要在实体类和映射文件中进行详细配置。 九、懒加载与立即加载 懒加载(Lazy ...
Hibernate支持多种关系映射,如一对一(`@OneToOne`)、一对多(`@OneToMany`)、多对一(`@ManyToOne`)和多对多(`@ManyToMany`)。每种关系映射都有相应的配置方法。 11. **懒加载(Lazy Loading)** 通过`@...