HQL查询从多个表中获取数据

时间:2012-02-23 13:25:13

标签: hibernate mapping hql parent-child

我有2个表--A和B.每个表都有相应的hbm.xml和pojo Class A{
  String aId;
  String col;
}
Class B{
  String bId;
  String aId;//as reference to class A
  A aObj;
}
B.hbm.xml contains the following entry to map A to B:
<many-to-one name="aId" column="AID" not-null="true" class="com.pojo.A" unique="true"/>
我的要求是,每当创建B的对象时,它也应该将数据推送到表A中。类似地,当我从B读取时,它应该基于 aId 匹配给我来自A的数据。这是一对一的映射。我想传递 aId 值作为查询的输入。并从对应于该匹配行的两个表中获取数据。 有人可以告诉我如何使用HQL查询来实现这一目标吗?我现在的结构是否符合我的要求?

1 个答案:

答案 0 :(得分:1)

您的课程不正确。 B类应该有一个A类型的字段,但没有aId字段。

阅读unidirectional OneToOne associations上的Hibernate文档,因为这就是你所拥有的。

您的要求表明您应该cascade从B到A的所有操作,并且应该急切地提取此关联(使用<many-to-one lazy="false"...>)。