休眠映射
问题描述:
父对象和子对象有两个对象 父对象和子对象实现颜色 子对象和父对象通过一对多关系进行映射。 但是,只有父图映射到颜色列,其中颜色列仅在父表上存在。 是否可以通过hibernate映射将子颜色映射到父颜色?休眠映射
父表 ID颜色
CHID表 ID PARENT_ID
所以我可以使用休眠中下面的“子C其中c.colour”不使用别名。 如果可能,请提供一些例子,谢谢。
答
这是不太你要求的解决方案,但为什么在Child
不落实getColour
方法:
public Color getColor() { return this.parent.getColor(); }
及用途:
Child c where c.parent.color = ?
在HQL
?
这样,你的域对象的用户将在Child
类上有一个getColor()
方法,它真的从它的parent
(如在DB中实现的那样)获得。你可以在DAO层(这是HQL查询所在的位置)隐藏这个间接寻址。您甚至可以使Parent
类的color
成员private
类和使用反射实施Child.getColor()
。 :-)