hibernate OneToMany 标准返回重复项

2023-11-21

我有一个由以下映射的关联:

@Entity
public class Parent
{
...
    @Id
    @Column(name = "parent_id")
    private Long id;

    @OneToMany(mappedBy = "parent")
    @OrderBy("id")
    private List<Child> children;
...
}

@Entity
public class Child
{
...
    @Id
    @Column(name = "child_id")
    private Long id;

    @ManyToOne
    @NotFound(action = NotFoundAction.IGNORE)
    @JoinColumn(name = "parent_id")
    private Parent parent;

    @Column
    private Boolean enabled;
...
}

我想使用 Criteria API 返回所有条件的列表Parent包含一个或多个实体Child具有属性的实体enabled=false。我不喜欢映射的children由查询过滤的集合。

例如,给定以下情况:

Parent A
    - Child A enabled=true
    - Child B enabled=false

Parent B
    - Child A enabled=false
    - Child B enabled=false

Parent C
    - Child A enabled=true
    - Child B enabled=true

该查询应返回以下内容:

Parent A
    - Child A enabled=true
    - Child B enabled=false

Parent B
    - Child A enabled=false
    - Child B enabled=false

到目前为止,我正在使用以下条件查询:

Criteria crit = session.createCriteria(Parent.class);
crit.createCriteria("children").add(Restrictions.eq("enabled", false));
List<Parent> result = crit.list();
return result;

然而它返回的相当于

Parent A
    - Child A enabled=true
    - Child B enabled=false

Parent B
    - Child A enabled=false
    - Child B enabled=false

Parent B
    - Child A enabled=false
    - Child B enabled=false

即,它为每个子元素返回一个父记录(填充了子集合)enabled=false

有谁知道如何在这种情况下仅返回唯一的父元素?

感谢建议,p。


您需要添加一个distinct, e.g.

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

应该适合你的情况

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hibernate OneToMany 标准返回重复项 的相关文章

随机推荐

  • 从 Java 配置中使用 Spring 动态语言支持

    我想用动态语言支持Spring框架 在 XML 中我只需使用lang命名空间 但我想使用 Java 配置 即 Configuration类 only 我可以想象我可以通过初始化所有内容来做到这一点org springframework sc
  • 行锁 - 手动使用它们

    我基本上有一个应用程序 它有 5 个线程 每个线程都从表中读取 该查询是一个简单的 SELECT TOP 1 from the table 但我想强制执行锁定 以便下一个线程将从表中选择下一条记录 而不是锁定的记录 当应用程序完成其任务时
  • 无需包装器或使用 API 即可访问 Google 趋势数据:Python

    我正在尝试编写一个 Python 程序来从 Google Trends GT 收集数据 具体来说 我想自动打开 URL 并访问折线图中显示的特定值 我很乐意下载 CSV 文件 或者通过网络抓取值 根据我对 Inspect Element 的
  • 如何使用python直接从服务器发送电子邮件而不使用smtp

    我是 php 程序员 使用 php 您可以直接向服务器发送电子邮件 例如以下代码向客户端发送电子邮件 但在Python中 你必须使用smtplib和gmail或hotmail服务器来发送电子
  • 如何从锚子节点获取父级div id

    div class wizard rules If a href class highlight ALL DASHBOARD a encounters an error div 这里我想获取div idwizard ruleonclick
  • 如何减小android中单选按钮的大小

    我们可以减小 android 中单选按钮的大小吗 据我所知 单选按钮可以完成 但不像其他 EditText 或 TextView 那样 试试这个代码
  • 使用CSS,如何使图像跨越页面的整个宽度作为背景图像?

    比如说 就像这个例子一样 http www electrictoolbox com examples wide background image html 当我这样做时 无论我做什么 最终图像周围都会出现白色边框 我究竟做错了什么 如果你希
  • 如何从模板引擎 TWIG 中的完整路径加载模板

    我想知道如何从完整路径加载模板 例如FILE恒定给予 实际上你必须为模板设置一个 根 路径 如下所示 require once path to lib Twig Autoloader php Twig Autoloader register
  • 如何检查元素滚动后是否可见?

    我正在通过 AJAX 加载元素 其中一些只有向下滚动页面才可见 有什么方法可以知道某个元素现在是否位于页面的可见部分 这应该可以解决问题 function isScrolledIntoView elem var docViewTop win
  • 为什么控制台窗口在显示我的输出后立即关闭?

    我正在按照以下指南学习 C MSDN 现在 我刚刚尝试了实施例1 here是链接到MSDN 并且我遇到了一个问题 为什么控制台窗口在显示我的输出后立即关闭 using System public class Hello1 public st
  • 谁能推荐一个好的 .Net PDF 阅读库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 谁能推荐一个从 Net 读
  • datetime2 数据类型到 datetime 数据类型的转换错误

    我有一个控制器 HttpPost public ActionResult Create Auction auction var db new EbuyDataContext db Auctions Add auction db SaveCh
  • jpg 每像素位数

    jpeg 中每个像素有多少位 我有一个 425 x 282 的 jpg 大小为 20635 字节 如果我将其编码为 png 则其大小为 116255 字节 一般回答 每像素位数 位 像素 1 字节 8 位 gt JPG 20635 8 位
  • 将字节写入文件而不删除现有字节[重复]

    这个问题在这里已经有答案了 可能的重复 在 Java 中在文件中间写入字节的最佳方法 我有一个需要在其中写入字节的文件 我知道我需要在文件中的哪个位置insert特定字节 为了清楚起见 我需要在文件中间写入字节而不擦除任何现有字节 整个操作
  • 在 iPhone 上解析 JSON 日期

    请原谅我 因为我是 Objective C 的新手 我正在从 Date xxxxxxxxxxxxx xxxx 格式的 NET Web 服务获取日期 我正在寻找一些关于如何最好地将其解析为 NSDate 对象的方向 我尝试过使用 dateWi
  • 以批处理模式运行 Matlab

    在我看来 以批处理模式运行Matlab有两种方法 第一个 unset DISPLAY matlab gt matlab out 2 gt 1 lt lt EOF plot 1 10 print file exit EOF 第二个使用选项 r
  • WinJS加载本地json文件

    我正在用我的头撞这个 我找不到从 WinJS 应用程序的子文件夹中打开简单 json 文件的方法 我尝试过 Ajax 和 WinJS xhr 但均无济于事 我还研究过使用 NET 中的 File Open 之类的 老式 方式打开文件 但除了
  • Dropbox SDK - linkFromController:委托还是回调?

    我正在使用其网站上提供的 SDK 将 Dropbox 添加到我的应用程序中 有没有办法一次性调用某个方法 DBSession sharedSession linkFromController self 与帐户链接 基本上我想打电话 self
  • 如何使用智能指针作为类属性来复制对象?

    来自增强库文档我读到了这个 从概念上讲 智能指针被视为拥有所指向的对象 从而负责在对象不再存在时删除该对象 需要 我有一个非常简单的问题 我想将 RAII 用于可复制和可分配的类的指针属性 复制和赋值操作应该很深 每个对象都应该有自己的实际
  • hibernate OneToMany 标准返回重复项

    我有一个由以下映射的关联 Entity public class Parent Id Column name parent id private Long id OneToMany mappedBy parent OrderBy id pr