当前位置: 首页 > 面试题库 >

休眠选择一个表的所有行(使用。*)与多个表联接,并给出异常

韦绍晖
2023-03-14
问题内容

Hibernate可以做到这一点吗?

select A.something, B.something, C.something, D.something , E.*  
      from  A  
      LEFT OUTER JOIN B on A.id = B.id_fk  
      LEFT OUTER JOIN C ON B.id = C.id_fk  
      LEFT OUTER JOIN D ON C.id = D.id_fk  
      LEFT OUTER JOIN E ON A.abc = E.abc;

该查询在SQL中工作正常,但在Hibernate中给出以下异常:

org.hibernate.hql.ast.QuerySyntaxException: expecting IDENT, found '*' near line 1

问题答案:

您不需要“ ”。hibernate正在旋转对象,对于指向SQL中的列没有意义。当您需要E时,它将变成E对象。

从E中选择E

这是HQL SELECT * FROM E

当您调用session.createQuery()时,甚至“ FROM E”也可以使用。



 类似资料:
  • 问题内容: 我想使用联接表在两个表之间建立一对多关系。 最后,我想使用Hibernate批注执行此操作。 我找到了一些使用xml映射执行此操作的示例,但没有带注释的示例。 我相信这就是需要创建表的方式 问题答案: 不要寻找例子。阅读官方文档: 另外,请注意,这是单向一对多关联的默认设置。因此,如果默认的表名和列名适合您,您甚至不必提供注释。

  • 问题内容: 我需要从表中的鸟(基本上是所有鸟)中选择所有值,然后与另一个跟踪谁喜欢那只鸟的表联接。 因此,我希望查询返回所有鸟类,以及人们喜欢该鸟类的记录的ID。如果没有任何人喜欢这只鸟的记录,那么该字段应该为空。 我当前的查询没有得到空值。这里是: 如何确保Birds表中的每一行都显示一次? 问题答案: 您必须使用而不是 不同的联接 :仅保留两个表中都有数据的行 :保留左侧表格的所有行,并添加右

  • 问题内容: 如何选择多个表并从同一列联接多个行? 它不会返回,并且。我确定此SQL代码段的语法错误。 更新: 显示。移除后 它返回: 但我需要退货: 问题答案: 您可以多次连接到同一张表,而只需提供不同的别名

  • 问题内容: 我有两个表: 我想从表1中选择所有具有值A和B的表2行的行。这将是行1和3(不是2行,因为它只有A,没有4行是因为只有B)。我可以在没有子查询的情况下执行此操作吗? (注意:我还需要查询表1中的值,因此我不能只查询表2。) 问题答案: 塔达阿!没有子查询。

  • 问题内容: 可以使用Hibernate标准吗? 问题答案: 我遇到了完全相同的问题,并且能够像这样解决它: 注:,和在上面的代码指在属性名,和类,相应地(类具有属性等)。 对于此解决方案,您甚至不需要在中设置和参数。

  • 问题内容: 在休眠状态下,我可以执行以下操作 现在,如果我想获取int和String怎么办? 现在列表的结构是什么? 问题答案: 这可以。您唯一需要了解的是它将返回如下列表: