gpt4 book ai didi

grails - Grails findAll在集合中找不到值

转载 作者:行者123 更新时间:2023-12-02 13:50:22 24 4
gpt4 key购买 nike

我有一个名为Planning的域,其中包含hasMany另一个包含Employee的域。我正在尝试查找所有这些计划,其中这些计划包含特定的员工,但我无法使其正常工作。

我正在尝试这样做,我的打印语句确实将contains打印为true

plannings = plannings.findAll{planning->
if(employee) {
log.info("find plannings with employee ${employee} ${planning.employees.contains(employee)}")
planning.employees.contains(employee)
}
}

我不是作为Hibernate查询来执行此操作,因为这以另一种怪异的方式破坏了应用程序。该代码以 for each执行,并且由于任何原因导致Hibernate出现一些奇怪的行为。

最佳答案

如果没有关于您的问题的更多相关详细信息(奇怪的行为,日志跟踪,休眠映射等),我们所能做的就是推测。如果必须这样做,我很可能会这样说:

  • 您用于比较的employee对象是一个分离的对象。
  • employee对象不会有意义地覆盖equalshashCode
  • 您可以使用此detached employeeemployees内的persisted planning.employees.contains(employee)(使用planning)进行比较

  • 在这种情况下,即使它们表示相同的对象,这些比较也永远不会成立。如果是这种情况,则您必须:
  • 使用持久的employee对象进行比较。
  • 或者,implement equals and hashCode Employee具有语义上的意义

  • 希望这可以帮助。

    关于grails - Grails findAll在集合中找不到值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56126559/

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