как использовать spring storedprocedure с хранилищем данных spring

Может ли кто-то объяснить, можно ли использовать хранимую процедуру spring с репозиторием spring crud или репозиторием подкачки, по крайней мере, для части выборки данных?

Я пытаюсь интегрировать существующий код, который использует spring хранимую процедуру с spring repository. но я не хочу использовать JPA.

2 ответа

  1. Вы можете вызвать хранимую процедуру в Spring Data JPA, как показано ниже

    Сначала объявите хранимую процедуру в Entity

    @Entity
    @Table(name = "MY_TABLE")
    @NamedStoredProcedureQueries({
       @NamedStoredProcedureQuery(name = "proc_with_input", 
                                  procedureName = "pkg.proc_with_input",
                                  parameters = {
                                     @StoredProcedureParameter(mode = ParameterMode.IN, name = "inputParam", type = String.class)
                                  }),
       @NamedStoredProcedureQuery(name = "proc_with_input_output", 
                                  procedureName = "pkg.proc_with_input_output",
                                  parameters = {
                                     @StoredProcedureParameter(mode = ParameterMode.IN, name = "inputParam", type = String.class),
                                     @StoredProcedureParameter(mode = ParameterMode.OUT, name = "outputParam", type = String.class)
                                  })
    })
    public class MyTable implements Serializable {
        // Table properties 
    
        // Setters and Getters
    }
    

    Вызов procs в JPA reporsitory интерфейс, как показано ниже.

    public interface MyTableRepository extends CrudRepository<MyTable, Long> {
    
        @Procedure(name = "proc_with_input")
        public void inOnlyTest(@Param("inputParam") String inputParam);
    
        @Procedure(name = "proc_with_input_output")
        public String inAndOutTest(@Param("inputParam") String inputParam);
     }
    
  2. Нет никакого официального модуля данных Spring, который работает непосредственно с jdbc без JPA.

    Но есть проект с открытым исходным кодом https://github.com/jirutka/spring-data-jdbc-repository это попытка, хотя это кажется несколько застойным. Поскольку вы фактически создаете подклассы, он должен иметь возможность добавлять/переопределять методы с теми, которые используют хранимую процедуру / шаблон jdbc, так как все, что вам нужно для этого, — это источник данных.