sql >> Database >  >> RDS >> Mysql

Entiteiten selecteren door een opgeslagen procedure aan te roepen met Spring Data

Laten we zeggen dat dit uw procedure is:

CREATE OR REPLACE PROCEDURE get_users(data out SYS_REFCURSOR)
AS
BEGIN
OPEN data FOR SELECT * FROM USERS;
END;

U definieert een @NamedStoredProcedureQuery :

@NamedStoredProcedureQuery(
    name="getUsers", 
    procedureName="get_users", 
    resultClass=User.class, parameters={
        @StoredProcedureParameter(queryParameter="data", name="data", direction=Direction.OUT_CURSOR)
    }
)
@Entity
public class User {
    ...
}

En dan kun je je procedure als volgt aanroepen:

public UserRepository extends JpaRepository<User, Long>{
    @Procedure('User.getUsers')
    List<User> getUsers();
}

U kunt dit ook als volgt controleren met uw EntityManager:

Query query = entitymanager.createNamedQuery("getUsers");
List users = query.getResultList();



  1. OctoberCMS:Hoe onderhoud je een wederzijdse vriendschapsrelatie?

  2. Een Postgres-container starten en vullen in Docker

  3. Wat is het verschil tussen verwijderen uit table_a en truncate table table_a in MySQL?

  4. Hoe kan ik Conda gebruiken om MySQLdb te installeren?