当前位置: 首页 > 知识库问答 >
问题:

使用Hibernate使用外键(其中)查询数据库表

公沈浪
2023-03-14

我刚开始冬眠,所以这个问题可能看起来很愚蠢。

@Entity
@Table
public class Application extends BaseSimpleEntity {
    @Column(nullable = false)
    private String appID;
    @OneToOne(cascade = CascadeType.ALL)
    @Searcheable
    private LocalizedString name;
...
@Table
@Entity
public class Compilation extends BaseSimpleEntity {

    @Column(nullable = false)
    private String uid;
    @ManyToOne
    private Application application;
    @Column
    private DateTime creationDate;
    @Column
    private DateTime finishDate;
    @Column
    private String path;
....
@Query("FROM Compilation c WHERE c.Application.id = :applicationId")
List<Compilation> findValidCompialiton(@Param("applicationId") Long applicationId);

由:org.hibernate.queryException:无法解析属性:Application of:xx.xx.xx.xx.xx.compilation[FROM xx.xx.xx.xx.compilation c,其中c.Application.id=:applicationid]在org.hibernate.queryexception.generateQueryException.java:137)在org.hibernate.queryException.wrapWithQueryString(queryException.java:120)在impl.compile(queryTranslatorImpl.java:158)在org.hibernate.engine.query.spi.hqlQueryPlan.(hqlQueryPlan.java:126)在org.hibernate.engine.query.spi.hqlQueryPlan.(hqlQueryPlan.java:88)在org.hibernate.engine.query.spi.hqlQueryPlan.(queryPlan.java:190)在在org.hibernate.internal.sessionimpl.createquery(SessionImpl.java:1800)在org.hibernate.jpa.spi.AbstractEntityManagerImpl.createquery(AbstractEntityManagerImpl.java:328)

共有1个答案

余靖
2023-03-14

您的查询应该是:

@Query("FROM Compilation c WHERE c.application.appID = :applicationId")

您已经为实体创建了别名C,Hibernate尝试检查编译,现在您可以访问编译实体的属性。现在,compilation类中的属性是application,这个application属性表示application,它具有字段appid

 类似资料:
  • 目前正在android studio中用java进行一个项目,我正在尝试用sql查询两个表。各表如下: 预订表 User_Bookings表 用户表仅供参考 有没有一种方法可以使用UNION或INNER JOIN并仅使用用户ID连接这两个表? 例如,对于ID为2的用户,我希望从预订表中获得出发时间 还是UNION/INNER JOIN不是我试图实现的目标的正确运算符?正如我一直在尝试和复习我的SQ

  • 问题内容: 假设我有一个包含3列的表格:Id,类别,名称。 我想以这种方式查询表:为我获取OR或OR的行 如何?不必求助于 我想使用的庞大列表…但是可以将其与2列一起使用吗? 谢谢! 问题答案: 您可以创建一个临时表 然后加入你的主表 如果要从代码中使用该方法,则可以使用表参数进行操作。 定义表类型: 和一个存储的proc将读取数据: 然后,您可以使用C#代码中的代码,例如:

  • 本文向大家介绍使用Python查询SAP数据库,包括了使用Python查询SAP数据库的使用技巧和注意事项,需要的朋友参考一下 Python是最常用的面向对象编程语言之一,非常易于编码和理解。 为了将Python与SAP结合使用,我们需要安装Python SAP RFC模块,即PyRFC。它的可用方法之一是RFC_READ_TABLE,可以调用该方法以从SAP数据库中的表读取数据。 同样,PyRF

  • 问题内容: 我在Windows上安装了XAMPP,并安装了MySQL。 我想知道如何从C#查询数据库。 我已经可以使用连接了。 我正在数据库中寻找一个字符串,如果有,请弹出一句话。我该怎么做? 问题答案: 这是使应用程序连接到数据库的示例代码 从数据库获取字符串值的函数 按钮单击事件中的功能代码

  • 嗨,我正在尝试使用左外部连接执行hql查询,它是thwhing异常作为org.hibernate.hql.ast.querysyntaxException:意外标记:在第1行附近,可以告诉我这个查询中有什么问题吗 从CreditCardDetails cred左外连接CustomerHistory custHist on cred.creditCardDetailSid=custHist.Cred

  • 我做了一个图书馆管理系统。我正试图打印学生问题书,但SQL查询遇到了问题。下面是用户。用于打印发行书籍的php代码。我也上传了数据库,方便大家参考。请帮忙。 使用者php 以下是图书馆管理系统的数据库。 数据库是这样关联的:-usertable将id作为主键。Book将isbn作为主键,bookid作为外键。类型将bookid作为主键。存折的外键为isbn,主键为uid。我想显示存折,其中会显示存