gpt4 book ai didi

java - Hibernate 的持久集为空

转载 作者:行者123 更新时间:2023-11-30 02:35:25 27 4
gpt4 key购买 nike

我有一个实体,其中有一些 Set 类型的字段。当我从数据库中检索实体时,即使数据库中的关联是正确的,该集合也始终为空。

@Valid
@NotNull
@OneToMany(fetch = FetchType.EAGER)
private Set<Location> locations;

我尝试启用急切获取以强制 hibernate 在检索实体时加载关联,但它始终为空。其他非集合类型的字段已正确填充。

我以前从未在 hibernate 中见过这种情况,我做错了什么吗?

谢谢

最佳答案

不是 100% 但 99% 确定您需要将 cascade 添加到您的 @OneToMany - 默认级联根本不是级联,这意味着如果您坚持您的实体,Location 集合将不会被持久化..

试试这个:

@Valid
@NotNull
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<Location> locations;

换句话说,您的问题不是未获取集合,而是它首先没有被持久化(您在位置和连接表中看到任何内容了吗?)

编辑 - 我现在看到您所写的关联是正确的,那么您是否单独保留您的位置对象?

关于java - Hibernate 的持久集为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43241048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com