- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [Order.items, OrderItem.options];
上面是我在加入如下三个表时遇到的异常。
OrderItemOption.java
@Entity
public class OrderItemOption {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "item_option_id")
private Long id;
@Column(name = "item_id", nullable = false)
private Long itemId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(
name = "item_id",
referencedColumnName = "item_id",
insertable = false,
updatable = false
)
private OrderItem orderItem;
}
订单项.java
@Entity
public class OrderItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "item_id")
private Long id;
@Column(name = "order_id", nullable = false)
private Long orderId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(
name = "order_id",
referencedColumnName = "order_id",
insertable = false,
updatable = false,
nullable = false
)
private Order order;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "orderItem")
@OrderBy("item_option_id ASC")
private List<OrderItemOption> options;
}
订单.java
@Entity
public class Order {
@Id
@Column(name = "order_id", nullable = false)
private Long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "order")
@OrderBy("item_id ASC")
private List<OrderItem> items;
}
这是我一次加入它们的 QueryDSL 代码。
final QOrder order = QOrder.order;
final QOrderItem item = QOrderItem.orderItem;
final QOrderItemOption option = QOrderItemOption.orderItemOption;
from(order)
.leftJoin(order.items, item).fetchJoin()
.leftJoin(item.options, option).fetchJoin()
.where(
order.id.eq(orderId)
.and(item.id.in(itemIds))
.and(option.id.in(optionIds))
)
.fetchOne())
我想做的是获取包含过滤关系的 Order 对象,以便我可以通过 order 对象访问过滤后的子对象。并且关系类型应该是列表,而不是集合。
例如,order.getItems().get(0).getOptions.get(0)
我怎样才能实现这个目标?
最佳答案
为了避免上述异常,有两种可能性:
List
更改为 Set
List
但不要取两个包。这意味着不要对两个集合都使用 fetchJoin()
。过滤:
使用 where 条件集合将不会被过滤。集合将包含所有关联的对象。加入JPA是为了在根对象——Order上创造条件。它与 SQL 中的不同。
可以使用 JPA 2.1 JOIN ON
功能过滤关联的集合。这允许在 ON
子句中添加附加条件
关于java - 加入三个深度表时为"MultipleBagFetchException: cannot simultaneously fetch multiple bags",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55326193/
我是 HADOOP 和 PIG 的新手。 我有两个包: DUMP A: (1) (2) (4) DUMP B: (1,John,USA) (2,Richard,UK) (3,Ian,Ireland)
我有一个例子,我们正在尝试做一个看似简单的连接: A = load 'data6' as ( item:chararray, d:int, things:bag{(thing:chararray, d
研究该主题,可以找到作者使用“词袋”模型进行图像分类/检索的论文,而其他人则使用“特征袋”模型进行类似任务。 尽管我对所涉及的方法有基本的了解(检测和提取视觉词、构建视觉词典、使用机器学习训练分类器)
手册/文档广泛使用了“内袋”和“外袋”的语言(例如: http://pig.apache.org/docs/r0.11.1/basic.html ),但我无法清楚地确定分隔这些术语的精确定义。 例如所
这个问题已经有答案了: Type mismatch: cannot convert from Item to Item (1 个回答) 已关闭 7 年前。 我很困惑。我无法将外部类的实例变量 Node
我正在尝试使用 ORB 作为我的 detector 和 extractor 以及 BruteForce 创建一个词袋程序> 用于匹配器。 一切正常。 但我担心的是,当我尝试对我的描述符数组进行聚类时,
题目地址:https://leetcode.com/problems/bag-of-tokens/description/ 题目描述 Youhave an initial power P, an
我正在寻找一种数学变换,以将2D平面[0,1]x[0,1]上的点变换到单位球面上。 最常见的投影是通过将u和v解释为球坐标的角度来进行纬度-经度映射(将u映射为[0,2PI]和v映射为[-PI/2,
我有这个RDF A B D 1 C
我一直在看this tutorial标签部分让我感到困惑。不是标记本身的行为,而是教程中显示过程的方式。 更具体地说,#pragma omp 部分: #pragma omp parallel for
当使用 dask.bag 读取 json 文件时,如果文件中的 json 是多行,我会收到 JSONDecodeError 。 import json import dask.bag as db db
我不确定这个论坛是否适合这个问题,否则我很抱歉。 我对 Bag of Features 很陌生模型,我正在尝试实现以通过 vector 表示图像(对于 CBIR 项目)。 据我了解,给定训练集 S的
我正在尝试实现Haskell Bag(多集)。 到目前为止,我已经有了 data Bag a = EmptyBag | ListBag [(a, Integer)] deriving (Eq, Sho
我已经研究了 bag 和 idbag 之间的区别,我理解它们之间的区别,但我想了解的是,如果使用 bag 而不是 idbag ,是否会出现问题,反之亦然。有人可以用一个例子解释一下吗? 最佳答案 Ba
考虑以下 Hibernate 映射文件: ... 当我运行以下命令时: _session.EnableFil
我正在为 Fox and Geese 类型的游戏编写 AI。我的谓词之一如下所示: moveFox(+PrevState, -NextState, -PegList, +VisitedStates,
我刚刚开始学习 Haskell,但还没有掌握函数式编程。我需要创建一个多态数据类型,在运行我编写的函数之一之前我不知道其类型。该程序似乎希望我从列表中构建元组列表,例如: ['Car', 'Car',
我想像下面这样定义包 在上述情况下,hbm 文件中存在 xml 错误: 元素类型“bag”的内容必须匹配 “(元*,子选择?,缓存?,同步*,注释?,键,(元素|一对
Here ,我看到 Bag 类应该位于 java.util.Collection 中,但是当我尝试使用它时,我得到无法解析为类型 > 错误。 我应该复制+粘贴this或者是否缺少一些库? 最佳答案 这
我正在尝试使用 dask.bag 来保存给定类的对象,其中每个实例捕获文档的各种属性(标题、字数等)。 该对象有一些关联的方法,用于设置该对象的不同属性。 例如: import dask.bag as
我是一名优秀的程序员,十分优秀!