hibernate hsql得到错误节点没有数据类型:org.hibernate.hql.ast.tree.IdentNode
Posted
技术标签:
【中文标题】hibernate hsql得到错误节点没有数据类型:org.hibernate.hql.ast.tree.IdentNode【英文标题】:hibernate hsql getting error No data type for node: org.hibernate.hql.ast.tree.IdentNode 【发布时间】:2013-08-13 17:39:07 【问题描述】:我的 hsql 出现错误
No data type for node: org.hibernate.hql.ast.tree.IdentNode
+-[IDENT] IdentNode: 'OrderLocation' originalText=OrderLocation
我的映射类是这样的
<class name="core.classes.lab.LabOrder" table="lab_order">
<id name="Order_ID" type="int" column="labOrder_ID">
<generator class="increment" />
</id>
<many-to-one name="TestID" class="core.classes.lab.TestDescription"
fetch="join">
<column name="TestID" not-null="true" />
</many-to-one>
<property name="OrderLocation" column="labOrder_Location"
type="string" />
<property name="OrderStatus" column="labOrder_Status" type="string" />
<property name="DueDate" column="labOrder_DueDate" type="java.util.Date" />
<property name="OrderPriority" column="labOrder_Priority"
type="int" />
<property name="OrderRemarks" column="labOrder_Remarks" type="string" />
<property name="OrderCreateDate" column="labOrder_CreateDate"
type="java.util.Date" />
<property name="OrderCreateUser" column="labOrder_CreateUser"
type="int" />
<property name="OrderLastUpdate" column="labOrder_LastUpdate"
type="java.util.Date" />
<property name="OrderLastUpdateUser" column="labOrder_LastUpdateUser"
type="int" />
</class>
和我这样的hsql查询
Select e from LabOrder as e,TestDescription as t where e.TestID =t.TestID and t.isSpecimenAvailable = true
谁能告诉我为什么会出现这样的错误,请帮助我,谢谢
【问题讨论】:
【参考方案1】:e 在 Select e from ....
中做什么?
尝试将其更改为 e.OrderLocation
或 *
。
查看this link 获取示例。
【讨论】:
感谢我可以通过删除 select 来修复它,但是现在我得到了所有的对象,现在有办法删除第二个对象 你能告诉我第二个对象是什么吗?这是一个 -OrderStatus 吗? 现在我正在使用这样的查询“来自 LabOrder 作为 e,TestDescription 作为 t 其中 e.TestID = t.TestID 和 t.isSpecimenAvailable = true”,我正在获取所有行详细信息TestDescription 表,但我不需要它 您需要哪些字段?如果您愿意,您可以像这样提供特定字段 -select e.OrderLocation, t.TestID ...
。谢谢!
我得到这些值并将它们转换为 json,因为这是一个 Web 服务,所以当指定列名时,我没有将列名作为标签,所以我需要获取列名以及价值。但是当我指定列时,它没有给我列名但是当我使用上面的评论查询时,我得到了列名,所以我该怎么办【参考方案2】:
我花了一些时间调试的一个问题是一个在 Hibernate 3.x 上运行良好的查询,如下所示:
SELECT a FROM Actor A
当我升级到 Hibernate 4.x 时,我收到了与上述类似的错误消息。问题出乎意料地是大写字母A。
【讨论】:
【参考方案3】:确保查询正确编写,例如,
select user from User user;
语法:
SELECT <alias_name> FROM <EntityClass> <alias_name>;
【讨论】:
以上是关于hibernate hsql得到错误节点没有数据类型:org.hibernate.hql.ast.tree.IdentNode的主要内容,如果未能解决你的问题,请参考以下文章
HSQL 和 Hibernate - 许多删除语句上的内存不足错误
使用 hsql hibernate 数据源隔离 Junit 测试
org.hibernate.HibernateException:没有使用 HSQL DB 配置 CurrentSessionContext