如何在实体关系不是直接的情况下使用休眠条件联接多个表?

海豹

我有三个实体。那些是:

@Entity
public class Organization {
    @Id
    private long id;
    @Column
    private String name;
}
@Entity
public class Book {
    @Id
    private Long id;
    @Column
    private String name;
    @ManyToOne
    private Organization organization;
}
@Entity
public class Account  {
   @Id
   private Long id;
   @Column
   private String name;
   @ManyToOne
   private Book book;
}

在这三个实体中,我想执行以下sql:

SELECT acc.name, acc.id
FROM account acc
JOIN book b on acc.book_id = b.id
JOIN organization org on b.organization_id = org.id
WHERE org.name = 'XYZ'

在这种情况下,Account实体与Organization实体没有直接关系Account实体具有通过的关系Book如何使用休眠条件动态查询实现此目的?

jpprade

你可以这样:

Criteria accountCriteria = getCurrentSession().createCriteria(Account.class,"acc");
Criteria bookCriteria =  accountCriteria .createCriteria("book","b");
Criteria orgCriteria =  bookCriteria.createCriteria("organization","org");
orgCriteria.add(Restrictions.eq("name", "XYZ"));

ProjectionList properties = Projections.projectionList();
properties.add(Projections.property("name"));
properties.add(Projections.property("id"));

accountCriteria.setProjection(properties);
accountCriteria.list();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Codeigniter中如何在没有条件的情况下选择联接多个表?

来自分类Dev

如何在没有任何关系的情况下从2个表联接数据?

来自分类Dev

如何在多个联接条件中找不到记录的情况下返回NULL值

来自分类Dev

实体框架 - 如何在没有视图模型的情况下更新多个表

来自分类Dev

如何在满足计数条件的情况下查询具有多对多关系的表

来自分类Dev

如何在不使用实体类的情况下使用EclipseLink与表进行交互?

来自分类Dev

在多个表上进行条件联接筛选的情况下的SQL连接

来自分类Dev

单向1:M关系默认情况下使用联接表

来自分类Dev

如何在没有缓冲的情况下使用单个枚举检查IEnumerable的多个条件?

来自分类Dev

如何在有条件的情况下使用ConcatMap进行多个API调用

来自分类Dev

如何在不使用公共列的情况下使用SQL联接两个以上的表

来自分类Dev

在不使用联接的情况下联接多个表

来自分类Dev

如何在没有新实体的情况下配置多对多关系?

来自分类Dev

如何在没有外键的情况下匹配休眠/ JPA表

来自分类Dev

如何在不同表中没有重复记录的情况下进行休眠保存

来自分类Dev

如何在不使用实体框架的情况下使用ASP NET MVC5从SQL Server显示表?

来自分类Dev

如何在不使用mysql的情况下使用表

来自分类Dev

我如何在没有任何联接的情况下优化大型MySQL表中的查询?

来自分类Dev

如何在不重复的情况下向现有实体添加具有关系的新实体?(EF 6.1)

来自分类Dev

如何在没有多个列表的情况下联接3个表?

来自分类Dev

如何在不使用CDC功能的情况下维护单个表中多个表的历史记录

来自分类Dev

如何在不使用CDC功能的情况下维护单个表中多个表的历史记录

来自分类Dev

如何在没有多个 cfg.xml 文件的情况下通过休眠处理多个数据库

来自分类Dev

如何在不创建Symfony实体的情况下访问数据库中的不同表

来自分类Dev

如何在有条件的情况下使用RemoveAll删除列表中的多个项目?

来自分类Dev

如何在不使用多个parent()调用的情况下找到(元素表的)第一个祖先?

来自分类Dev

如何使用ActiveRecord在没有桥表的情况下创建has_many关系

来自分类Dev

如何在不单击按钮的情况下使用 RadioButtons 和 CheckBoxes 直接输出到 TexBox

来自分类Dev

实体框架如何在不使用timestmp或rowversion的情况下检测并发冲突

Related 相关文章

  1. 1

    Codeigniter中如何在没有条件的情况下选择联接多个表?

  2. 2

    如何在没有任何关系的情况下从2个表联接数据?

  3. 3

    如何在多个联接条件中找不到记录的情况下返回NULL值

  4. 4

    实体框架 - 如何在没有视图模型的情况下更新多个表

  5. 5

    如何在满足计数条件的情况下查询具有多对多关系的表

  6. 6

    如何在不使用实体类的情况下使用EclipseLink与表进行交互?

  7. 7

    在多个表上进行条件联接筛选的情况下的SQL连接

  8. 8

    单向1:M关系默认情况下使用联接表

  9. 9

    如何在没有缓冲的情况下使用单个枚举检查IEnumerable的多个条件?

  10. 10

    如何在有条件的情况下使用ConcatMap进行多个API调用

  11. 11

    如何在不使用公共列的情况下使用SQL联接两个以上的表

  12. 12

    在不使用联接的情况下联接多个表

  13. 13

    如何在没有新实体的情况下配置多对多关系?

  14. 14

    如何在没有外键的情况下匹配休眠/ JPA表

  15. 15

    如何在不同表中没有重复记录的情况下进行休眠保存

  16. 16

    如何在不使用实体框架的情况下使用ASP NET MVC5从SQL Server显示表?

  17. 17

    如何在不使用mysql的情况下使用表

  18. 18

    我如何在没有任何联接的情况下优化大型MySQL表中的查询?

  19. 19

    如何在不重复的情况下向现有实体添加具有关系的新实体?(EF 6.1)

  20. 20

    如何在没有多个列表的情况下联接3个表?

  21. 21

    如何在不使用CDC功能的情况下维护单个表中多个表的历史记录

  22. 22

    如何在不使用CDC功能的情况下维护单个表中多个表的历史记录

  23. 23

    如何在没有多个 cfg.xml 文件的情况下通过休眠处理多个数据库

  24. 24

    如何在不创建Symfony实体的情况下访问数据库中的不同表

  25. 25

    如何在有条件的情况下使用RemoveAll删除列表中的多个项目?

  26. 26

    如何在不使用多个parent()调用的情况下找到(元素表的)第一个祖先?

  27. 27

    如何使用ActiveRecord在没有桥表的情况下创建has_many关系

  28. 28

    如何在不单击按钮的情况下使用 RadioButtons 和 CheckBoxes 直接输出到 TexBox

  29. 29

    实体框架如何在不使用timestmp或rowversion的情况下检测并发冲突

热门标签

归档