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

Mysql変数をHibernateで使用するにはどうすればよいですか?

    さて、私は最終的にストアドプロシージャ(はい、最初は必要ないもの)を使用して動的クエリを作成します(それが可能だったとは思いません)。

    これが私のコードです:ストアドプロシージャ:

    DELIMITER |
    
    DROP PROCEDURE IF EXISTS UpdateRank |
    
    CREATE PROCEDURE UpdateRank(IN shortcut varchar(30))
    BEGIN
        SET @rank=0;
        SET @query=CONCAT('UPDATE Rank SET ', shortcut, '[email protected]:[email protected]+1 ORDER BY ', shortcut);     
    
        PREPARE q1 FROM @query;
        EXECUTE q1;
        DEALLOCATE PREPARE q1;
    END;
    
    |
    DELIMITER ;
    

    ヒントは、CONCAT関数を使用して、ストアドプロシージャで動的にクエリを作成することです。

    次に、従来の休止状態関数でプロシージャを呼び出します。

    Query q = em.createNativeQuery("CALL updateRank('lvl')");
    q.executeUpdate();
    


    1. nhibernate、sysrefcursorを返すOracleの関数を呼び出す

    2. PostgreSQLでテーブルの行数をすばやく検出する方法

    3. MySQLクエリの文字列から数値をどのように抽出しますか?

    4. 多対多の関係における問題