gpt4 book ai didi

java - 无法获取引用(Mongodb/Morphia)

转载 作者:行者123 更新时间:2023-12-01 17:31:21 25 4
gpt4 key购买 nike

从一个月前开始,我的 Java 项目遇到了一个麻烦,那就是当我启动应用程序时,我得到了这个:

Error on start
https://pastebin.com/raw/sKszKp4K
And i also get this:
https://pastebin.com/raw/4m2KzBHv

这种情况发生在某些用户身上,而不是所有用户身上,并且发生在某些内部有用户的“派系”中,我知道这个错误已发布在此处,但我找不到解决方案,我是很久以前就出现这个错误,我不知道现在该怎么办:(

When i stop the application it throws this error
https://pastebin.com/hX1R3nza
My FactionUser.java class:
https://pastebin.com/6Z68pULe
My PlayerFaction.java class:
https://pastebin.com/U7Zj0kGC

很抱歉没有在此处粘贴代码,但它不允许我放置超过 30000 个字符提前致谢!

最佳答案

很难确切地说出这里出了什么问题,但我可以提供一些想法,看看它们是否能引导您到任何地方。对于丢失的引用错误,至少有两种情况之一可能是:

  1. 自保存引用以来,引用的文档/实体已被删除。 MongoDB 不强制执行引用完整性,因此我认为这种情况在实践中经常发生。
  2. 引用的 ID 值实际上并不存在于数据库中,因为它从未实际保存过。 Morphia 要求在保存引用实体之前引用的实体具有 ID。这是因为 Morphia 需要将该 ID 值写入文档以保存引用。通常,此 ID 值是在保存所指对象时生成的。但是,在某些情况下(例如,ID 类型不是 ObjectId),ID 是在指示对象上手动设置的。在这种情况下,可以保存引用实体,因为引用对象在对象中具有 ID 值,即使该引用对象从未实际保存过。在这种情况下,您基本上没有引用任何内容,最终会出现该错误。

如果该实体实际上只是在保存引用后被删除了,没关系,您实际上可以告诉 Morphia 忽略 @Reference annotation 上丢失的引用。本身。

至于堆栈溢出,您的嵌入字段中似乎有一个循环,因此您可能需要确保正确设置模型。 Morphia 不支持这样的循环,因此开发人员有责任确保它们不会发生。

关于java - 无法获取引用(Mongodb/Morphia),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61116149/

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