【发布时间】:2009-06-19 14:03:26
【问题描述】:
我有一个代表表的域对象类。该类与另一个表有关联,但源类的属性与目标类的属性命名不同,我不知道如何对其进行休眠映射。
这是一个具有集合的类的示例(一个 CT 到多个 R 实例):
public class CT {
// This is the property in the property-ref down below
private String b;
// The set of Rs I want to get - there may be none that correspond to a CT instance.
private Set rs;
}
public class R {
// This property is mapped to the column name below.
private String rBc;
}
<!--Snippet of the mapping for class CT-->
<set name="rs" lazy="true" sort="MyComparator" table="R" >
<key column="R_COLUMN_NAME_THAT_REPRESENTS_THE_RELATIONSHIP" property-ref="b" />
<one-to-many class="CLASS_THAT_R_IS" />
</set>
Hibernate 接受这个映射,但是当我从我知道应该存在的 CT 实例中提取 Rs 集时,我只得到一个空的 PersistentSet。
请注意,对于每个 CT 实例,完全有可能没有或超过一个 R。这就是为什么我在那里有比较器的原因 - 我无法弄清楚如何轻松地告诉 Hibernate 如何在没有显式 SQL 的情况下执行 ORDER BY 子句(我犹豫是否要在 Hibernate 映射中编写。
有人可以帮我吗?
【问题讨论】:
-
我没有清楚地了解情况的对象方面。你能说更多关于对象在对象方面的作用吗? CT 和 R 的相对寿命和所有权状态如何?我已经设法将我所有的收藏都写成多对一。多对一和一对多的功能似乎有所不同。
标签: hibernate properties one-to-many no-match