gpt4 book ai didi

java - Hibernate查询异常: Unable to locate class

转载 作者:行者123 更新时间:2023-12-01 09:51:18 26 4
gpt4 key购买 nike

在 hbm.xml 中,经过增强后,我有 2 个 ABC 类的映射条目,两者都映射到表 ABC_TABLE

<class entity-name="ABC" name="model.ABC" table="ABC_TABLE">
<!-- property tags and id tag -->
</class>

<class entity-name="LazyABC" name="model.ABC" table="ABC_TABLE">
<!-- property tags and id tag -->
</class>

增强之前,hbm.xml 仅具有 ABC 类的entity-name="ABC"映射。

经过这样的增强后,原始HQL查询代码

select new ABC(a.abcId, a.abcContent, a.abcEnding) from ABC a where....

执行时抛出异常。

异常(exception)是

org.springframework.orm.hibernate3.HibernateQueryException: Unable to locate class [ABC]

引起

org.hibernate.hql.ast.QuerySyntaxException: Unable to locate class [ABC] 

然后我在网上找到了解决方案,只需将 ABC 构造函数名称更改为类的完整路径,例如

select new model.ABC(a.abcId, a.abcContent, a.abcEnding) from ABC a where....

然后问题就解决了,执行查询时没有抛出异常!

但是,我只是不知道为什么 hibernate 处理是这样的。

有人可以告诉我它成为解决方案的根本原因吗?

谢谢。 :)

最佳答案

首先,如果您需要基于对象的结果。使用Criteria API。

您可能拥有 ABC 类的有效导入。但是HQL不知道类的包名,因为它是String。因此,您应该提供包括包名称的完整路径。

关于java - Hibernate查询异常: Unable to locate class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37583921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com