gpt4 book ai didi

java - 如何使用 Hibernate 映射根据列值将表的数据分成两组?

转载 作者:行者123 更新时间:2023-12-01 05:58:59 25 4
gpt4 key购买 nike

假设有三个表:

Table A (ID, NAME)
Table B (ID, NAME)
Table A-B (A_ID, B_ID, Boolean_Property)

表 A 和表 B 由类 A 和 B 建模,如下所示:

public class A {
private long id;
private String name;

// All the B's that belong to A where the boolean property is True
Set<B> trueBSet;

// All the B's that belong to A where the boolean property is False
Set<B> falseBSet;
}

public class B {
private long id;
private String name;
}

我如何使用 Hibernate 对此进行建模?我希望能够执行以下操作,但似乎设置属性不存在鉴别器列值:

<class name="A" table="A">
<id name="id" column="ID">
<generator class="native" />
</id>

<property name="name" column="NAME" />

<set name="trueB" table="A-B">
<key column="A_ID"/>
<many-to-many column="B_ID" class="B"/>
<discriminator column="Boolean_Property" value="True" />
</set>

<set name="falseB" table="A-B">
<key column="A_ID"/>
<many-to-many column="B_ID" class="B"/>
<discriminator column="Boolean_Property" value="False" />
</set>
</class>

最佳答案

我认为,您可以在 set 标记中应用 where 子句。 Hibernate文档状态如下链接所示 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/collections.html

where(可选):指定检索或删除集合时使用的任意 SQL WHERE 条件。如果集合只需要包含可用数据的子集,这非常有用。

关于java - 如何使用 Hibernate 映射根据列值将表的数据分成两组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800203/

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