Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate JPA映射查询出现错误_Hibernate_Jpa_Spring Data - Fatal编程技术网

Hibernate JPA映射查询出现错误

Hibernate JPA映射查询出现错误,hibernate,jpa,spring-data,Hibernate,Jpa,Spring Data,我是JPA新手,所以我做了一个小申请。在我的应用程序中,我有一个@Query,比如: @Query("select a from T_RBM_OPSCREENS_APPLICATIONS a, T_SCR_APPS_OPS_ROLES b where a.id=b.app_id and b.role_id=?1") 应用程序开始运行时,会出现以下错误: 原因:org.hibernate.hql.internal.ast.QuerySyntaxException: T_RBM_OPSCREENS

我是JPA新手,所以我做了一个小申请。在我的应用程序中,我有一个@Query,比如:

@Query("select a from T_RBM_OPSCREENS_APPLICATIONS a, T_SCR_APPS_OPS_ROLES b where a.id=b.app_id and b.role_id=?1")
应用程序开始运行时,会出现以下错误:

原因:org.hibernate.hql.internal.ast.QuerySyntaxException: T_RBM_OPSCREENS_应用程序未映射[从中选择一个 T\u RBM\u操作屏幕\u应用程序a,T\u SCR\u应用程序\u操作\u角色b,其中 a、 id=b.app_id和b.role_id=?1]at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180) 在 org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110) 在 org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93) 在 org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324) 在 org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3270) 截断的。有关完整的堆栈跟踪,请参阅日志文件

但我做了如下映射:

    @Entity
    @Table(name = "T_RBM_OPSCREENS_APPLICATIONS", schema = "RBMCORE")
    public class Application implements Serializable{

        @Id

        @Column(name = "id")
        private int id;

        @Column(name = "s_appname", unique = true, nullable = false)
        private String name;
.
.
.
我错过了什么


谢谢

JPQL/HQL查询使用实体及其持久字段/属性/关联。他们不使用表和列

您的查询应该类似于:

select a from Application a inner join a.roles role where role.id = ?1

阅读。

JPQL/HQL查询使用实体及其持久字段/属性/关联。他们不使用表和列

您的查询应该类似于:

select a from Application a inner join a.roles role where role.id = ?1

阅读。

感谢您的快速回复。你说得对,我看到了纪录片中的台词,但是上面的表格“T_SCR_APPS_OPS_ROLES”不是一个模型表,所以在我的代码中没有模型对象。所以你写的hql并不完全正确。有没有一种方法可以使用真正的表名呢?没有。ORM的目的是将关系表映射到对象。如果您不这样做,那么就使用JDBC和SQL。感谢您的快速响应。你说得对,我看到了纪录片中的台词,但是上面的表格“T_SCR_APPS_OPS_ROLES”不是一个模型表,所以在我的代码中没有模型对象。所以你写的hql并不完全正确。有没有一种方法可以使用真正的表名呢?没有。ORM的目的是将关系表映射到对象。如果不这样做,则使用JDBC和SQL。