有两个对象,父母和孩子 父母和孩子都实现了颜色 子和父按一对多关系映射。 但是,只有父映射到颜色列,其中颜色列仅存在于父表上。 是否可以通过hibernate映射将子颜色映射到父颜色?
父母表 id颜色
CHID TABLE id parent_id
所以我可以在不使用别名的hibernate“child c where c.colour”中使用以下内容。 如果可能的话,请提前给我一些例子。谢谢。
答案 0 :(得分:0)
这不是您要求的解决方案,但为什么不在getColour
中实施Child
方法:
public Color getColor() { return this.parent.getColor(); }
并使用:
Child c where c.parent.color = ?
在HQL中?
这样,您的域对象的用户将在getColor()
类上使用Child
方法,它实际上来自parent
(在数据库中实现)。您可以在DAO层(这是HQL查询所在的位置)中隐藏此间接。您甚至可以使color
成员Parent
成为private
并使用反射来实施Child.getColor()
。 : - )