gpt4 book ai didi

java - 添加条目后注释为 "Lazy"的 map 未更新

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:45 24 4
gpt4 key购买 nike

我有以下实体:

   class User {
..
...
@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "id.uKey")
@MapKey(name="id.achieveId")
private Map<Integer, Achievement> achievements;
..
..
}

有时我会打电话: Hibernate.Initialize();

这张 map 充满了数据库中的条目。

当应用程序继续运行时,我将新条目保存到数据库表中。

然后我尝试访问 map ,但它不包含新条目。

有没有办法让它知道需要重新选择数据库表?

谢谢

编辑:

我添加这样的新条目:

public void save() {
..
tx = dbs.beginTransaction();

Achievement ua = new Achievement(key, id);
dbs.save(ua);

tx.commit();
}

最佳答案

初始化对象后,它驻留在 hibernate session 中,并且该 session 不能通过底层数据库的更改进行更新。只需从数据库重新加载对象,但在执行此操作之前将其从 session 中删除。

但也许,您真正想要的是修改对象中包含的 map 。这就是 OOP 方式。之后,您可以使用 Hibernate 持久保存整个对象。

关于java - 添加条目后注释为 "Lazy"的 map 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26493815/

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