sql >> Database teknologi >  >> RDS >> Mysql

Sådan kalder du en Stored Procedure fra Hibernate med både IN- og OUT-parametre

I betragtning af at du har en simpel lagret procedure, der udsender en grundlæggende type:

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 kalde denne lagrede procedure ved hjælp af 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. Sådan håndteres Ruby on Rails-fejl:Installer venligst postgresql-adapteren:`gem install activerecord-postgresql-adapter'

  2. Brug af SUM() uden at gruppere resultaterne

  3. nullvalue:Vis NULL-værdier i SQLite

  4. MySQL-forbindelse over SSH-tunnel