gpt4 book ai didi

mysql - 使用 Hibernate 和 Spring 调用存储过程

转载 作者:行者123 更新时间:2023-11-29 01:09:08 25 4
gpt4 key购买 nike

网上有很多描述如何使用Hibernate调用存储过程的例子,然而,当使用Spring时,情况有点不同。

我在 MySQL 中有一个存储过程,我想调用它:在 SQL 中,我需要编写以下内容:

CALL inrange(32.342324,32.234234);
It returns a row with the following: `{INT},{INT},{FLOAT}`

对于 Spring,我使用 HibernateTemplate 执行 hibernate 操作的方式,我知道你们中的一些人不会喜欢它,但这就是我开始时项目的样子,我'我不太急于改变它,也许在未来......

目前,我在 Java 中有以下代码,它试图调用该过程:

List<Object[]> resultset = hibernateTemplate
.findByNamedQuery("inrange",
person.getAddress().getLatitude(),
person.getAddress().getLongitude());

当我运行它时,我得到以下 Hibernate 异常:

org.springframework.orm.hibernate3.HibernateSystemException:
Named query not known: inrange;

我认为这是由于我没有在 hibernate 中声明存储过程而发生的。我的问题是:

  • 如何申报?
  • 在 Spring 的应用程序上下文文件中是否有特殊的声明方式?

最佳答案

您可以在 hibernate 中调用 native sql 查询。

查看此链接: http://www.mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/

顺便说一句,如果你想调用存储过程,你可以简单地使用 Spring JdbcTemplate。

请注意, hibernate 扩展可以满足您的需求: http://www.hibernatespatial.org/

关于mysql - 使用 Hibernate 和 Spring 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8378272/

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