0

2つの列を持つテーブルがあります:priceconstant

priceテーブル内のすべてのエントリに対してupdateを実行して、に基づいて更新したいと思いますconstant * coefficient

どうすればそのようなクエリを実行できますか?

4

1 に答える 1

1

これは、DQLクエリを使用して行うことができます。

$em->createQuery('
    UPDATE entityClass e
    SET e.price = e.constant * 33;
');

生のSQLを使用してこれを行うこともできます。

$em->getConnection()->executeUpdate('
    UPDATE entity_table_name AS e
    SET e.price = e.constant * 33;
');

preUpdate&prePersist doctrineイベントにリスナーを追加して、これらの値が自動的に更新されるようにすることもできます。

例については、 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdateを参照してください。

エンティティを保存するたびに、関連するフィールドが自動的に更新されるようにします。

于 2012-07-10T19:24:03.400 に答える