sql >> Databasteknik >  >> RDS >> Mysql

Hur man anropar en lagrad procedur från Hibernate med både IN- och OUT-parametrar

Med tanke på att du har en enkel lagrad procedur som matar ut en grundläggande typ:

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

Du kan anropa denna lagrade procedur med en 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");


  1. Bästa metoder för att effektivt lagra md5-hashar i mysql

  2. God praxis att öppna/stänga anslutningar i en asp.net-applikation?

  3. MYSQL välj de tre sista raderna, ordning efter ASC

  4. mysql conditional join beror på en kolumn