当前位置: 首页 > 知识库问答 >
问题:

spring data spa和oracle包

靳越
2023-03-14

我试图构建一个spring boot restendpoint,该endpoint调用一个oracle存储过程,该存储过程具有2个in参数和45个约束参数。我创建了一个实体:

package com.me.data.userservice.models;

import javax.persistence.*;
import java.util.Date;

/**
 * Created by me on 5/27/17.
 */
@Entity
@NamedStoredProcedureQueries({
        @NamedStoredProcedureQuery(name = "getUserDetailsSp",
                procedureName = "user_pkg.get_user_details",
                parameters = {
                        @StoredProcedureParameter(mode = ParameterMode.IN, name = "p_in_user_id", type = Long.class),
                        @StoredProcedureParameter(mode = ParameterMode.IN, name = "p_in_region", type = String.class)
                },
                resultClasses = UserDetails.class)
})
public class UserDetails {
    //region Private members
    @Id
    private Long user_id;
    private String first_name;
    private String last_name;
    private String email;
    @Column(name = "p_in_user_id", nullable = false)
    private String userId;
    private String user_id;
    @Column(name = "p_in_region", nullable = false)
    private String region;
    private Long scnd_user_id;
    ...
}
package com.me.data.userservice.repositories;

import com.me.data.userservice.models.UserDetails;
import org.springframework.data.jpa.repository.query.Procedure;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;

/**
 * Created by me on 5/27/17.
 */
public interface UserDetailsRepository extends CrudRepository<UserDetails, Long> {
    @Procedure(name="getUserDetailsSp")
    public UserDetails findByUserIdAndRegion(@Param("p_in_user_id") String userId, @Param("p_in_region") String region);
}

我实际上刚刚意识到iuser_pkg.get_user_details实际上是一个查询函数。这是如何改变我的应用程序?

共有1个答案

汲品
2023-03-14

我的解决方案或者我应该说我的变通方法有点不同,因为在尝试了很多事情之后,我放弃了@NamedStoredProceduRequeries。所以,我通过@query注释来实现

@Repository 
public interface MyObjectRepository extends CrudRepository<MyObject, String>  {
    @Query(value = "EXECUTE [dbo].[myProc] :fieldName, :pages", nativeQuery = true)
    Set<MyObject> findAllByFieldName(@Param("fieldName") String fieldName, @Param("pages") int pages);
}

这个链接可能对SPRING DATA JPA中的数据存储库很有帮助

 类似资料:
  • 问题内容: 有人让Spring JMS处理Oracle AQ队列吗? 我正在尝试根据此文章连接到AQ http://blog.nominet.org.uk/tech/2007/10/04/spring-jms-with- oracle-aq/ 但我现在收到此错误JMS-137:必须为具有ADT有效负载的目的地指定有效负载工厂 任何帮助对此表示感谢 谢谢达米安 问题答案: 该错误向我表明它实际上正在

  • 据我所知,Oracle每6个月将其Oracle JDK更新到一个功能版本,大约每3年更新一次Oracle JDK LTS。Oracle JDK在2019年1月之后将不再免费。看起来OpenJDK也在走向6个月的发布周期。 我的问题是: null 谢谢!

  • 本文向大家介绍Oracle中的Oracle Golden Gate和Oracle Active Guard之间的区别,包括了Oracle中的Oracle Golden Gate和Oracle Active Guard之间的区别的使用技巧和注意事项,需要的朋友参考一下 Oracle Golden Gate和Oracle Active Data Guard是数据复制技术。它们都用于数据复制,但是策略不

  • 问题内容: 我有一个Oracle表,其中包含几列的char(n)类型。我使用hibernate工具创建实体对象,此工具在String中映射char类型。 但是,当我部署应用程序时,我收到一个错误,因为Hibernate等待varchar2类型而不是char类型: 我必须使用哪种Java类型来映射实体中的char(n)类型? 谢谢。 问题答案: 此博客条目上有一些有用的信息。 从本质上讲,您需要使h

  • 问题内容: 我正在尝试开发一个简单的Java servlet,它调用Oracle 11g XE数据库。提供给我的数据库使用RAW列类型作为所有表上的ID。 最初,我尝试只从JDBC中获取数据,然后对返回的VARBINARY字节数组进行base64编码,以便将结果通过JSON传递给前端系统。但是,在对base64进行解码并尝试将字节数组设置回该列之后,Oracle / JDBC没有返回数据。 我决定

  • 问题内容: 我正在通过ODBC和Crystal Report 2008使用oracle 11(不确定确切的版本,但是由于LISTAGG无法正常工作,我想它不是第2版)。 这是我遇到的问题: 这是一张桌子: 我正在使用WM_CONCAT函数来获取如下内容: 这是用于此的SQL: 但我希望对区域进行排序,因此我尝试了以下操作: 但由于某种原因,它返回以下错误: 我真的不明白我在这里做错了什么…有人可以