当前位置: 首页 > 知识库问答 >
问题:

具有多个oneToMany关系的ebean获取

濮阳靖
2023-03-14

我有一出戏!使用ebean进行模型管理的框架项目。我有4个模型,A B C D. A和B是oneTo多,B和C是OneTo多,B和D是One To多。现在我想要一个与所有相关的B C D链接的A列表。

我现在拥有的是

A.find.fetch("Bs", new FetchConfig().query()).fetch("Bs.Cs", "Bs.Ds", new FetchConfig().query()).findList();

但是性能非常差,根据sql日志,sql查询没有按照我的要求进行连接。是否有任何方法可以对所有这些对象使用查询联接?(即,选择包含4个查询的所有A B C D,并在本地连接它们,而不是为每个B单独查询?)

共有1个答案

陈刚洁
2023-03-14

新FetchConfig的javadoc。查询()。。。急切地将此路径中的bean作为单独的查询(而不是作为主查询的一部分)获取。

也就是说,您应该删除FetchConfig。如果要使用SQL联接而不是单独的查询,请使用query()。

这就是说,Ebean不会在单个查询中返回bcd,因为这将导致笛卡尔乘积,它会自动分解查询以避免这种情况。

 类似资料:
  • 我有一个实体,它与

  • 我有一个Post实体,它有一个TestAttribute类型属性,其代码如下: 我尝试在传递一个RawSql(其中我还获得了其他属性)之后获取属性testAttribute,如下代码所示 我的问题是,当我使用Ebean返回查询结果时。json()。tojson(),则不会返回TestAttribute属性。这是返回的结果: 注意,当我使用json时。toJson()返回结果,但返回的实体属性可以使

  • 当我试图使用ebean缓存系统(带有io.ebean:ebean-redis)读取@ManyTomany关系时,我遇到了一个异常。这是一个springboot应用程序。 我正在使用的版本: SpringBootVersion=2.4.3 MariaDbVersion=2.7.2 EBeanVersion=12.7.2 Flywayversion=7.7.0 BaseModel Java类: 文章J

  • 我有一个具有唯一id UID的表条目。第二个表程序,ID列作为键,程序列表UID外键引用条目中的UID。我没有创建名称,这是我试图维护的遗留代码。 当试图保存条目时,我得到一个异常 ERROR执行DML bindLog[]错误[[SQL0121]重复的名称PROGRAM_LIST_UID不允许... 跟踪显示insert语句确实指定了两次: 我找到的唯一方法是从中删除。然而,此属性在代码的其他地方

  • 我需要支持一个涉及以下实体的场景(使用JPA): 用户 一个用户可以有多个帐户,一个帐户可以在多个用户之间共享,这是迄今为止的标准@ManyToMany关系。 一个用户可以为每个帐户拥有一组不同的角色,一个角色可以在多个用户之间共享。 我遵循了这个实践,它解释了一种用额外列映射多对多关联的方法,但我不确定我是否得到了它。 用户实体: 账户实体: 用户帐户实体: 用户帐号: 我正在创建一个新用户并尝

  • 问题内容: Book,User和Review说,我正在构建具有复杂模型的应用程序。 评论包含书籍和用户ID。为了能够搜索至少包含一个评论的“图书”,我已将“图书”设置为“评论”的父级,并且具有这样的路由。但是,我还需要找到撰写包含某些短语的评论的用户。 是否可以同时将书和用户作为评论的父级?有没有更好的方法来处理这种情况? 请注意,我无法更改数据建模的方式/不愿意这样做,因为数据已从持久性数据库传