gpt4 book ai didi

java - 插入顶部链接后无法加载实体

转载 作者:行者123 更新时间:2023-12-02 08:31:15 27 4
gpt4 key购买 nike

我使用 toplink 作为 ORM 工具,我面临一个特殊的问题。我将一个实体插入到 session 中,然后在下一行中,如果我尝试加载相同的实体,我无法获取该实体,而是返回 null。但如果我尝试使用 hibernate ,同样的问题,那么它可以正常工作。任何人都可以帮忙吗?

Address address = new Address();
address.setAddressId("1");
address.setPincode(1);
uow2.registerNewObject(address);
ExpressionBuilder builder = new ExpressionBuilder();
Expression expr = builder.get("addressId").equal("1");
Address address1 = (Address)uow2.readObject(Address.class, expr);

最后我得到的地址1为空。我不明白,因为我正在使用相同的 key 插入对象,然后尝试检索它...请帮助我...

最佳答案

这是 native TopLink/EclipseLink 代码。您只是将地址“注册”到工作单元,在提交之前不会写出。

有几种方法可以从工作单元获取未提交的结果。在上面的场景中,您可以在注册新对象之前调用 uow.setShouldNewObjectsBeCached(true),然后 readObject 调用将找到它。

您还可以将 readObject 调用更改为 ReadObjectQuery 并在查询上设置 conformResultsInUnitOfWork。

如果您刚刚开始使用 EclipseLink/TopLink,那么我建议使用 JPA API。您将能够在 JPA 上找到许多资源。然后,一旦您开始优化代码或开始处理复杂的场景,您就可以使用 EclipseLink 邮件列表和论坛来获取 EclipseLink 的特定帮助。

关于java - 插入顶部链接后无法加载实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308902/

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