sql >> Databáze >  >> RDS >> Mysql

Jak používat proměnné Mysql s Hibernate?

No, nakonec používám uloženou proceduru (ano, to, co původně nechci) k vytvoření dynamického dotazu (nemyslím si, že by to bylo možné).

Zde je můj kód:Uložená procedura:

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 ;

Tipem je použití funkce CONCAT k dynamickému vytvoření dotazu v uložené proceduře.

Poté zavolejte proceduru v klasické funkci hibernace:

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


  1. Jak mohu přidat komentáře v MySQL?

  2. Jak najít a zamaskovat PII v Elasticsearch

  3. CHYBA:neukončený řetězec v uvozovkách na nebo blízko

  4. Výjimka zaraženého SQL pro JDBC