Hibernate JPA映射查询出现错误
我是JPA新手,所以我做了一个小申请。在我的应用程序中,我有一个@Query,比如: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
@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。