【发布时间】:2021-03-15 09:36:30
【问题描述】:
我需要使用 JPA 调用存储过程。存储过程对多个表进行操作,并从这些表中返回一些列。
尝试使用@Procedure 似乎不起作用,在这种情况下始终找不到存储过程。
使用本机查询直接调用过程是成功的,但是使用这种方法,我需要将返回的结果映射到一个对象的列表。
我在存储库中的实现如下所示,
@Query(value = "EXECUTE dbs.multitable_Test :inputObj", nativeQuery = true)
List<sp> multitable_Test(@Param("inputObj")String inputObj);
存储过程返回的结果需要映射到sp类。
当我们在单个结果集中有多个表响应时,如何实现这一点?
已经尝试使用attributeConvert from this link,仍然出现以下异常。
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type
对此的任何帮助表示赞赏。
【问题讨论】:
-
我认为存储过程不适合 JPA。
-
@duffymo 没有任何解决方法支持这个吗?
-
我不知道。 JPA 是关系数据库之上的一层,它允许假装您只处理对象。存储过程不适合该模型。您已经在使用 Spring。只需使用 Spring JDBC 模板来管理它。
标签: java sql-server spring jpa jpql