java中hibernate查询的类名约束
抱歉,如果这是一个愚蠢的问题,但我几乎一点都不懂Java。 我在postgreSQL数据库中有一个表“Orders”,我通过Hibernate访问该表,将该表映射到一个类:java中hibernate查询的类名约束,java,mysql,postgresql,hibernate,mapping,Java,Mysql,Postgresql,Hibernate,Mapping,抱歉,如果这是一个愚蠢的问题,但我几乎一点都不懂Java。 我在postgreSQL数据库中有一个表“Orders”,我通过Hibernate访问该表,将该表映射到一个类: @Entity @Table(name = "Orders") public class Orders { ... } 这很有效。但是,如果我将类名更改为“Order”,则: 我得到一个错误: org.hibernate.hql.ast.QuerySyntaxException: Orders is not mapped
@Entity
@Table(name = "Orders")
public class Orders { ... }
这很有效。但是,如果我将类名更改为“Order”,则:
我得到一个错误:
org.hibernate.hql.ast.QuerySyntaxException: Orders is not mapped [from Orders]
当然,我已经更新了HibernateXML配置文件,从
<mapping class="<path>.orders.Orders"/>
到
知道为什么吗?我错过了什么?DB表和类之间的映射只基于@table注释而不是类名,不是吗 您忽略了一个事实,即JPQL不是SQL。它适用于实体名称和属性/字段名称,而不适用于表名称和列名。由于您将实体类的名称从
Orders
更改为Order
,因此您需要将JPQL查询从
select o from Orders o ...
到
实体映射的表的名称完全不相关
<mapping class="<path>.orders.Order"/>
select o from Orders o ...
select o from Order o ...