【问题标题】:Callable Statement with JpaRepository带有 JpaRepository 的可调用语句
【发布时间】:2016-10-12 07:56:23
【问题描述】:

我创建了一个存储过程“BookingDeletion” 现在,我通过以下方式使用 CallableStatement 调用此过程:

if (addBooking == null) {
    addBooking = "CALL BookingDeletion(?, ?, ?, ?)";
}

现在,如果我想使用 JpaRepository,并将其方法应用于此过程,我该怎么做?
程序中的操作非常多,所以我无法通过jparepository单独执行所有操作。

【问题讨论】:

  • 有什么建议吗???

标签: java spring stored-procedures spring-data-jpa jpql


【解决方案1】:

您可以将@Query 注释与nativeQuery 一起使用等于true

所以你只需要在你的 Repository 接口中声明一个类似下面的方法。

@Query(value = "{CALL BookingDeletion(?1, ?2, ?3, ?4)}", nativeQuery = true)
public void bookingDeletion(Object p1, Object p2, Object p3, Object p4);

【讨论】:

  • 我可以在我的服务实现类中声明这个方法吗?
  • 存储库已在那里自动装配
  • 不,它必须在扩展 JpaRepository 的 Repository 接口中
  • 以上是替代 CallableStatement 的替代抽象层。
  • 在你的服务中注入EntityManager并使用docs.oracle.com/javaee/6/api/javax/persistence/…
猜你喜欢
  • 2016-10-17
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多