比方說,這是你的程序:
CREATE OR REPLACE PROCEDURE get_users(data out SYS_REFCURSOR)
AS
BEGIN
OPEN data FOR SELECT * FROM USERS;
END;
你定義一個@NamedStoredProcedureQuery
:
@NamedStoredProcedureQuery(
name="getUsers",
procedureName="get_users",
resultClass=User.class, parameters={
@StoredProcedureParameter(queryParameter="data", name="data", direction=Direction.OUT_CURSOR)
}
)
@Entity
public class User {
...
}
然後你就可以打電話給你的程序是這樣的:
public UserRepository extends JpaRepository<User, Long>{
@Procedure('User.getUsers')
List<User> getUsers();
}
您可以還可以使用你的EntityManager這樣來檢查:
Query query = entitymanager.createNamedQuery("getUsers");
List users = query.getResultList();
我不能在存儲庫中做類似的事嗎? – tzortzik
這就是我知道它應該如何工作。先試試這個。 –
它肯定會工作。我正在尋找一種方法將它放入存儲庫,因爲我所有與數據庫事務有關的信息都存在 – tzortzik