我有一个代表表的域对象类。这个类与另一个表有关联,但源类的属性与目标类的属性命名不同,我不知道如何休眠映射它。
这是具有集合的类的示例(一个 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。这就是为什么我在那里有比较器的原因——我无法弄清楚如何在没有显式 SQL 的情况下轻松地告诉 Hibernate 如何执行 ORDER BY 子句(我犹豫要不要在 Hibernate 映射中编写它。
有人可以帮我吗?