gpt4 book ai didi

java - SQL 错误 : 933, SQLState: 42000 和 ORA-00933: SQL 命令未正确结束

转载 作者:行者123 更新时间:2023-12-01 19:02:08 25 4
gpt4 key购买 nike

我正在使用 Hibernate 进行数据库访问。我在代码中使用以下查询来获取我需要的数据:

SELECT proasset
FROM com.company.claims.participant.AbstractBeneficiary bene
JOIN bene.approvals approval
JOIN bene.proassetkey proasset
join proasset.relatedparties proassetparties
WHERE approval.user_dt > :currentDate
AND approval.user_type = :userType

我在以下内容中将其用作查询:

Query q = this.getSessionFactory().getCurrentSession().createSQLQuery(query.toString())
q.setDate("currentDate", new Date());
q.setString("userType", APPROVER_USER_TYPE);
List<ProAsset> proassets = q.list();

但是,我在尝试运行它时遇到以下问题:

SQL Error: 933, SQLState: 42000
ORA-00933: SQL command not properly ended

如果重要的话,查询是使用 StringBuilder 构建的,并使用 \n 来换行

对这个问题有什么想法吗?

最佳答案

看起来您正在尝试将 ORM 与 native (普通的旧 SQL)查询混合。

createSQLQuery 需要 native SQL。您正在使用类而不是表名。尝试阅读以下内容:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html

简而言之,您需要编写如下查询:

select fu
from bar
where situation = 'snafu'

也许您真的想编写一个namedQuery?它们使用 ORM 语法,您可以在其中连接实体,就像您在示例中所做的那样。

查看这些示例:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html#querysql-namedqueries

关于java - SQL 错误 : 933, SQLState: 42000 和 ORA-00933: SQL 命令未正确结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852223/

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