Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个单向映射与Hibernate中的双向映射有何不同?_Java_Hibernate_Orm - Fatal编程技术网

Java 两个单向映射与Hibernate中的双向映射有何不同?

Java 两个单向映射与Hibernate中的双向映射有何不同?,java,hibernate,orm,Java,Hibernate,Orm,我正在读《行动中的冬眠》一书,发现很难掌握以下概念 我无法理解为什么同一外键在内存中有两种不同的表示形式,为什么hibernate在执行以下代码时会检测到外键的两种不同更改: bid.setItem(item) bids.add(bid) 存储在项目的bids集合中的bid和bid都引用相同的外键 Item将Bids的集合保存在内存中,Bid将Item保存在内存中 项目 ------ 收集投标书; 投标 ------ 项目; 投标=新投标(…)//标的 Item=getItemFromD

我正在读《行动中的冬眠》一书,发现很难掌握以下概念

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

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

存储在项目的bids集合中的bid和bid都引用相同的外键

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

项目
------
收集投标书;
投标
------
项目;
投标=新投标(…)//标的
Item=getItemFromDb()//项目对象
投标文件。设置项目(项目);
bids=item.getBids();
标书。添加(标书);
如果您为
投标
设置了
项目
,您还必须确保更新
项目
对象的
投标
集合以保持所有内容同步。否则,
bid
对象将有与其关联的
,但是,
对象的集合中不会有该
bid
,这意味着
对象将不同步

希望这有帮助