gpt4 book ai didi

java - Hibernate 中两个单向映射与双向映射有何不同?

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

我正在阅读《Hibernate in Action》一书,发现很难掌握以下概念。

enter image description here

我无法理解为什么同一个外键有两种不同的内存表示,以及为什么在执行以下代码时 hibernate 会检测到外键的两个不同更改:

bid.setItem(item)
bids.add(bid)

存储在项目的出价集合中的出价和出价都引用相同的外键。

最佳答案

Item 在内存中保存 Bids 的集合,而 Bid 在内存中保存 Item

Item
------
Collection<Bid> bids;
Bid
------
Item item;
Bid bid = new Bid(...);   //bid object
Item item = getItemFromDb(); //item object

bid.setItem(item);
bids = item.getBids();
bids.add(bid);

如果您为 bid 设置了 item,您还必须确保更新 bids 集合item 对象使所有内容保持同步。否则,bid 对象将具有与其关联的 item,但是 item 对象不会具有该 bid它的集合,这意味着 item 对象将不同步。

希望这有帮助!

关于java - Hibernate 中两个单向映射与双向映射有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046234/

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