在Hibernate中,这种多对多映射方法可行吗?

在Hibernate中,这种多对多映射方法可行吗?,hibernate,hyperlink,mapping,many-to-many,Hibernate,Hyperlink,Mapping,Many To Many,我有三个表:item、node和item\u node作为链接表,其中当然包含item和node的id 我是否可以映射链接表(item\u node),使相应的类ItemNode以某种方式保存对item和node类的引用?在m:n关系中映射链接表是否有任何已知的实践 我会这样想象: <class name="test.model.ItemNode" table="ITEM_NODE"> <composite-id name="ID" class="test.model.

我有三个表:itemnodeitem\u node作为链接表,其中当然包含item和node的id

我是否可以映射链接表(item\u node),使相应的类ItemNode以某种方式保存对item和node类的引用?在m:n关系中映射链接表是否有任何已知的实践

我会这样想象:

<class name="test.model.ItemNode" table="ITEM_NODE">
    <composite-id name="ID" class="test.model.INCompID">
        <key-property name="item" column="ITEM_ID" />
        <key-property name="node" column="NODE_ID"/>
    </composite-id>
</class>
节点已经映射,并且它们自己可以正常工作

我知道这不是处理多对多关系的常用方法,但我对基于标准集/包的方法有一个非常恼人的问题,因为有一个糟糕的延迟初始化异常,并且没有办法急切地加载这些集合,因为它们将包含大量数据(数据库表中有数十万行)。
SpringAOP用于事务管理。OpenSessionInViewFilter/Interceptor似乎对这个特定问题也没有帮助,所以

我是否可以映射链接表(item_节点),使相应的类ItemNode以某种方式保存对item和节点类的引用

当然可以。另一种查看方法是想象ItemNode可能自己拥有一个属性(例如,“sequence_no”)。因此,ItemNode可以有效地单独成为一个实体,而不仅仅是Item和Node之间的链接

请参见Hibernate测试套件中的此示例:

在m:n关系中映射链接表是否有任何已知的实践

有个人偏好,但没有最佳实践。有些人意识到事情可以改变,并为此做好准备:他们将关系映射为一个实体。然后,有些人认为这种关系也应该被视为OO模型中的一种关系

我是否可以映射链接表(item_节点),使相应的类ItemNode以某种方式保存对item和节点类的引用

当然可以。另一种查看方法是想象ItemNode可能自己拥有一个属性(例如,“sequence_no”)。因此,ItemNode可以有效地单独成为一个实体,而不仅仅是Item和Node之间的链接

请参见Hibernate测试套件中的此示例:

在m:n关系中映射链接表是否有任何已知的实践

有个人偏好,但没有最佳实践。有些人意识到事情可以改变,并为此做好准备:他们将关系映射为一个实体。然后,有些人认为这种关系也应该被视为OO模型中的一种关系

public class INCompID {

private Item item;
private Node node;

//getters, setters and overriden 
//equals() and hashCode() methodes
}