关于Hibernate映射的问题(一对多)

关于Hibernate映射的问题(一对多),hibernate,nhibernate-mapping,Hibernate,Nhibernate Mapping,在我学习冬眠的过程中,我突然想到了一点,所以需要你的建议。 我有三个A、B、C班,还有三个家长班。 这三个类仅代表三个方面,但在映射到同一表的底层数据库中 在我的家长课上,我参考了这三门课 private Set<A> airTransport =new HashSet<A>(); private Set<B> roadTransport=new HashSet<B>(); private Set<C> trainTra

在我学习冬眠的过程中,我突然想到了一点,所以需要你的建议。 我有三个A、B、C班,还有三个家长班。 这三个类仅代表三个方面,但在映射到同一表的底层数据库中

在我的家长课上,我参考了这三门课

private Set<A> airTransport =new HashSet<A>();
    private Set<B> roadTransport=new HashSet<B>();
    private Set<C> trainTransport=new HashSet<C>();
当我检索父类对象并检查集合的大小时,它给出了以下数字 A类的集合有3个元素 B和C类的集合各有1个元素,这给了我删除对象的问题

我不明白为什么会这样。
这方面的任何想法/建议都会很有帮助

您可以在set xml元素中使用“where”属性。您将需要某种方法来区分每个集合中应该包含哪些行。看见


例7.6

谢谢你的指点。另外,我们还可以使用Hibernate过滤器来实现这一点(只是对所有在某个时候到达本文的人的更新)
 <set name="A" table="Test" inverse="true" lazy="true" cascade="save-update, delete">
            <key>
                <column name="PARENTID" />
            </key>
            <one-to-many class="A" />
        </set>
        <set name="B" table="TEST" inverse="true" lazy="true" cascade="save-update, delete">
            <key>
                <column name="PARENTID" />
            </key>
            <one-to-many class="B" />
        </set>
        <set name="C" table="TEST" inverse="true" lazy="true" cascade="save-update, delete">
            <key>
                <column name="PARENTID" />
            </key>
            <one-to-many class="C" />
        </set>
UUID
PARENTID
Other Fields