Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So rufen Sie eine gespeicherte Prozedur aus dem Ruhezustand auf, die sowohl IN- als auch OUT-Parameter hat

Angenommen, Sie haben eine einfache gespeicherte Prozedur, die einen grundlegenden Typ ausgibt:

CREATE PROCEDURE count_comments (
   IN postId INT, 
   OUT commentCount INT
) 
BEGIN
    SELECT COUNT(*) INTO commentCount 
    FROM post_comment  
    WHERE post_comment.post_id = postId; 
END

Sie können diese gespeicherte Prozedur mit einem JPA StoredProcedureQuery :

StoredProcedureQuery query = entityManager
    .createStoredProcedureQuery("count_comments")
    .registerStoredProcedureParameter(
        "postId", Long.class, ParameterMode.IN)
    .registerStoredProcedureParameter(
        "commentCount", Long.class, ParameterMode.OUT)
    .setParameter("postId", 1L);
 
query.execute();
 
Long commentCount = (Long) query
    .getOutputParameterValue("commentCount");