2017-06-09 78 views
0

我想在使用JPA的Spring引导应用程序中调用存储过程,该存储过程是在mysql中构建的。我的存储过程返回不能包含在单个模型中的结果,因为它从表的组合中获取数据。 我可以用“call”来做到这一点,但我想这不是JPA的方式。请告诉我,什么是最好的办法?在Spring Boot中使用JPA调用StoredProcedure

+0

JPA有其自己的存储过程查询API,这是调用这样的事情,并不知道你在做什么。 http://www.datanucleus.org/products/accessplatform_5_1/jpa/query.html#stored_procedures –

回答

0

如果您使用普通JPA,则需要执行本地查询调用。像下面的东西。

Query q = em.createNativeQuery("select my_store_pro(?, ?)"); 
List<Object[]> results = q.getResultList(); 

for (Object[] a : results) { 
    System.out.println("result " + a[0] + " " + a[1]); 
} 

如果您使用的是Spring Data存储库,那么您需要类似下面的内容。

@Query(nativeQuery = true, value = "select my_store_pro(?, ?)") 
Date callMyStoreProc(int val1, int val2); 
相关问题