0
두 개의 열이있는 테이블이 있습니다 : price
및 constant
.Doctrine2에서 테이블의 다른 필드를 기반으로 필드를 업데이트하는 방법은 무엇입니까?
테이블의 모든 항목에 대해 price
을 업데이트하려면 constant * coefficient
을 기반으로 업데이트를 실행하고 싶습니다.
어떻게 이러한 쿼리를 수행 할 수 있습니까?
두 개의 열이있는 테이블이 있습니다 : price
및 constant
.Doctrine2에서 테이블의 다른 필드를 기반으로 필드를 업데이트하는 방법은 무엇입니까?
테이블의 모든 항목에 대해 price
을 업데이트하려면 constant * coefficient
을 기반으로 업데이트를 실행하고 싶습니다.
어떻게 이러한 쿼리를 수행 할 수 있습니까?
당신이하는 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 교리 이벤트에 리스너를 추가 할 수 있습니다, 이러한 값은 자동으로 업데이트됩니다.
예를 들어 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate을 참조하십시오.
엔티티를 저장할 때마다 관련 필드가 자동으로 업데이트됩니다.
사실 저는 일괄 업데이트를하고 싶습니다. 많은 레코드 (수천)가 있고 나는 그들 모두에 대해 하나의 쿼리를하고 싶습니다. – pixel
내 대답을 업데이트했습니다. – AdrienBrault