有人可以解释是否可以将spring存储过程与spring crud存储库或分页存储库一起使用,至少对于数据获取部分是什么?
我正在尝试将使用spring存储过程的现有代码与spring存储库集成。但是,我不想使用JPA。
答案 0 :(得分:0)
您可以调用Spring Data JPA中的存储过程,如下所示
首先在实体中声明存储过程
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);
}
在JPA reporsitory界面中调用procs,如下所示。
@Override
protected void onResume() {
super.onResume();
startService();
btConfirmPGO.setEnabled(false);
btNotePGO.setEnabled(false);
btDetailsPGO.setEnabled(false);
if (NotePGOActivity.idTypeNote != null) {
update();
}
String[] selectionVals = {NewDataAdapter.objectId, NewDataAdapter.lineId};
tasks.clear();
if (!isSort && !isFiltr) {
getAllTasks();
} else if (isSort && !isFiltr) {
getAllTasks1(sortColumn[0], sort[0]);
} else if (!isSort && isFiltr) {
getAllTasks2(column[0], sort[0], filtrText);
} else if (isSort && isFiltr) {
getAllTasks3(column[0], sort[0], filtrText, sortColumn[0]);
}
Page page = config.getItems().get(1).getPages().get(0);
myAdapter = new NewLineDataAdapter(this, parseTrasyToDataRow(tasks), page);
list.setAdapter(myAdapter);
list.setOnItemClickListener(this);
myAdapter.notifyDataSetChanged();
}
答案 1 :(得分:0)
没有正式的Spring Data模块可以直接使用没有JPA的jdbc。
但是有一个开源项目https://github.com/jirutka/spring-data-jdbc-repository试图这样做,虽然看起来有些停滞不前。由于您实际上创建了子类,因此它应该能够使用存储过程/ jdbc模板添加/覆盖方法,因为您需要的只是一个DataSource。