sql >> データベース >  >> RDS >> Mysql

SpringDataを使用してストアドプロシージャを呼び出してエンティティを選択する方法

    これがあなたの手順だとしましょう:

    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();
    



    1. MySQLIF条件

    2. Kohana 3.1.4:Database_Exception [2]:mysql_connect():アクセスが拒否されました

    3. Oracleでサポートされている地域のリストを返す方法

    4. SQL Serverのテーブル値関数とは何ですか?