物理数据库模型

enter image description here

实体模型

enter image description here

我有2个数据库表A和B.在实体模型A中有三个子节点A1,A2,A3 . A2和A3与B实体有关系,因此这些关系在这些类中分别用相同的属性名定义 .

我想用Hibernate标准查询A记录,在bField上添加限制 . 在bField上添加别名时,在本机查询中有两个具有相同别名的联接 . 这会导致 ORA-00918: column ambiguously defined 错误 .

criteria.createAlias("bField", "b");
criteria.add(Restrictions.eq("b.x", givenValue));

结果是这样的本机查询

select * from A a inner join B b on b.id=a.b_id inner join B b on b.id=a.b_id where b.x = ?;

在hibernate条件文档中,我没有看到具有相同属性字段名称的实体继承的任何限制 . 这是Hibernate标准的正常行为吗?

任何帮助表示感谢,提前谢谢 .