假设我有一个MySQL存储过程,其中包含以下选择:
select * from users;
如何在JpaRepository
中使用@Procedure
注释,以便我可以获得结果?像这样:
public UserRepository extenda JpaRepository<User, Long>{
@Procedure('get_users')
List<User> getUsers();
}
假设这是您的程序:
CREATE PROCEDURE get_users()
BEGIN
SELECT * FROM USERS;
END
定义@NamedStoredProcedureQuery
:
@NamedStoredProcedureQuery(
name="getUsers",
procedureName="get_users",
resultClass=User.class, parameters={
@StoredProcedureParameter(queryParameter="data", name="data", direction=Direction.OUT_CURSOR)
}
)
@Entity
public class User {
...
}
然后你可以像这样调用你的过程:
public UserRepository extends JpaRepository<User, Long>{
@Procedure('User.getUsers')
List<User> getUsers();
}
您还可以使用EntityManager进行检查,如下所示:
Query query = entitymanager.createNamedQuery("getUsers");
List users = query.getResultList();
问题内容: 假设我有一个MySQL存储过程,其中包含以下选择: 如何在中使用注释,以便获得结果?就像是: 问题答案: 假设这是您的过程: 您定义一个: 然后您可以像这样调用过程: 您也可以使用EntityManager进行检查,如下所示:
我想知道是否可以使用Spring数据JPA调用存储过程,它具有resultset和multiple out参数。 我发现了相同https://github.com/spring-projects/spring-data-examples/issues/80的Git问题 如果问题解决了,有人能举一个Spring Boot的例子吗?
我正在尝试使用JPA调用一个Firebird可选过程。该方法如下所示: 是否可以使用JPA调用firebird选择过程? 如果方法中有,为什么“找不到命名查询”?
问题内容: 我正在处理一个查询(一个SELECT),我需要将此查询的结果插入表中。在进行插入之前,我需要做一些检查,如果所有列都有效,我将进行插入。 该检查是在存储过程中完成的。在其他地方也使用相同的过程。因此,我正在考虑使用相同的过程进行检查。 程序进行检查并插入值都可以。 我试图在SELECT内调用该过程,但是它不起作用。 这种代码不起作用。 我认为可以使用游标完成此操作,但我想避免使用游标。
下面是我的Oracle存储过程, 我得到以下异常:hibernate:{CALL REPORT_HIBERNATE(?)}org.hibernate.exception.GenericJDBcException:无法执行查询...并且由:java.sql.sqlException:无效的列索引引起 Plz让我知道在Spring中我将如何使用Hibernate注释调用这个存储过程??
问题内容: 我有一个需要很多参数的插入存储过程-其中2个是@ FirstName,@ LastName。我还有一个更新存储过程,该过程需要许多参数-其中2个是@ FirstName,@ LastName。 我想做的是,从插入SP内部完成之后,调用更新SP并将其发送给@ FirstName,@ LastName。 我不知道这样做的正确语法;我试过了: 但我认为这是错误的。 有人可以告诉我怎么写这个电