我有一个返回行的程序 每行都有一列,这是一个字符串,就像这样..
create procedure myproc(IN var1 varchar(255), IN var2 varchar(255))
begin
select col3 from table1 where col1 = var1 and col2 = val2;
end;
/
我想使用Spring Data调用此过程。
Spring Data手册说,我可以调用这个程序 来自存储库中的方法,该方法使用@Procedure注释 像这样......
@Procedure(procedureName = "myproc")
List<String> myproc(String val1, String val2);
我的问题是..应该如何包含带注释方法的存储库类,
被宣布为
应该是这样的..
class MyRepository extends JpaRepository<T,ID>{
}
如果是,我应该为T和ID使用什么类型参数
我是否必须创建一个实体类,以取代上面的T
如果是,在这种情况下什么是适合的ID类型
我是否必须在数据库中创建一个表来保存这个实体?
答案 0 :(得分:0)
Spring数据jpa遵循'domain driven design'
。
所以我认为必须通过Domain。
您的域名就像
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
.... getter setter...
}
您的存储库应如下所示
public interface PersonRepository extends JpaRepository<Person, Long> {
@Procedure(procedureName = "myproc")
List<String> myproc(String val1, String val2);
}
id
类的Person
字段的数据类型作为ID
传递,在这种情况下,它是Long
有关示例https://dzone.com/articles/calling-stored-procedures-from-spring-data-jpa
的更多信息