我发现了很多 MinMax Heap 实现,它们将数据存储在数组中。它真的很容易实现,这就是我正在寻找不同的东西的方式。我想仅使用堆的元素以及指向左子节点和右子节点的指针(当然还有一个要比较的键)来创建一个 MinMax 堆。因此,堆只有指向根对象(最小级别)的指针,而根对象有一个指向其子对象(最大级别)的指针,依此类推。我知道如何插入一个新对象(根据堆大小使用 int 的二进制表示找到正确的路径),但我不知道如何实现其余部分(向上(向下)元素,找到父级或祖级) 。
谢谢帮助
根据书籍Pro JPA 2,单向@ManyToOne和@OneToOne之间的主要区别在于@OneToOne:
源实体中只有一个实例可以引用同一个目标实体实例.换句话说,目标实体实例不在源实体实例之间共享.在数据库中,这相当于对源外键列(即源实体表中的外键列)具有唯一性约束.
问题是,当我在实体上创建这样的映射并让Hibernate创建模式时,根本没有创建唯一约束.为什么?因为对我而言,如果必须为映射显式定义唯一约束,则@ManyToOne和@OneToOne之间没有区别.我可以为他们两个做这件事,但没有任何区别.这是正确的行为吗?