假设我有一个MySQL存储过程,其中包含以下选择:
select * from users;
如何在中使用@Procedure
注释,JpaRepository
以便获得结果?就像是:
public UserRepository extenda JpaRepository<User, Long>{
@Procedure('get_users')
List<User> getUsers();
}
假设这是您的过程:
CREATE OR REPLACE PROCEDURE get_users(data out SYS_REFCURSOR)
AS
BEGIN
OPEN data FOR 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存储过程,其中包含以下选择: 如何在中使用注释,以便我可以获得结果?像这样:
我正在尝试使用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。 我不知道这样做的正确语法;我试过了: 但我认为这是错误的。 有人可以告诉我怎么写这个电
问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’