Cómo lograr reemplazar en Doctrine2 -- doctrine-orm campo con doctrine camp Relacionados El problema

How to achieve REPLACE INTO in doctrine2


0
vote

problema

Español

Estoy refactorizando una base de código, porque este es un código heredado con un montón de SQL crudo, y todo el código es Spaghetti.

Estoy mirando tristemente esa doctrina no tiene funcionalidad REPLACE INTO , conozco las razones por las cuales.

Encontré algo de solución, como merge pero que está en desuso.

Paso Muchas horas para aprender doctrina, porque se usa ampliamente, y muchas horas mientras construí las entidades.

¿Hay alguna solución "legal" para lograr este REPLACE INTO ?

Original en ingles

I am refactoring a code base, because this is a legacy code with a lot of raw sql, and the whole thing is spaghetti code.

I am sadly facing that doctrine has no REPLACE INTO functionality, I know the reasons why.

I found some workaround, like merge but that is deprecated.

I spend a lot of hours to learn doctrine, because it is widely used ORM, and a lot of hours while I built the entities.

Is there any "legal" solution to achieve this REPLACE INTO?

     

Lista de respuestas

0
 
vote

Puede manejar duplicados llamando UniqueConstraintViolationException .

  $entity = new PossibleDuplicatedEntity();  try {    $em->persist($entity);    $em->flush(); } catch (DoctrineDBALExceptionUniqueConstraintViolationException $e) {     // handle duplicated values }   

Pero tenga cuidado: la doctrina usa transacción implícita. Cuando se lanza la excepción, la transacción es enrollada y la espalda EntityManager está cerrado (las entidades están separadas). Ver documentación .

Mejor sería manejarlo de duplicación. Es decir. Si se debe a la concurrencia, intente usar la tabla de bloqueo, etc.

 

You can handle duplicates by catching UniqueConstraintViolationException.

$entity = new PossibleDuplicatedEntity();  try {    $em->persist($entity);    $em->flush(); } catch (\Doctrine\DBAL\Exception\UniqueConstraintViolationException $e) {     // handle duplicated values } 

But beware xe2x80x93 Doctrine uses implicit transaction. When exception is thrown, transaction is rolled-back and EntityManager is closed (entities are detached). See documentation.

Better would be handling cause of duplication occurring. I.e. if it's because of concurrency, try to use table locking etc.

 
 

Relacionados problema

0  ¿Cómo puedo generar muchos datos con doctrina (SymFony 4)?  ( How can i output manytoone data with doctrine symfony 4 ) 
Esta es mi entidad "DATOS": <?php namespace AppEntity; use DoctrineORMMapping as ORM; /** * @ORMEntity(repositoryClass="AppRepositoryDataRepository") */...

0  Symfony 1.4: Doctrine Build Model Warning  ( Symfony 1 4 doctrine build model warning ) 
Copié mis fuentes de mi devolución de LOKAL (todo funciona bien) a mi repositorio y desde allí hice un checkout en mi dev. Ahora, cuando intento construir t...

-1  SfdoctrineForm: ¿cómo puedo verificar si existe el objeto en un formulario incrustado y relacionarlo con el nuevo objeto principal en lugar de crear uno nuevo?  ( Sfdoctrineform how can i check if the object in an embedded form exists and re ) 
Estoy trabajando en un formulario de registro de usuarios que involucra 3 objetos diferentes, el usuario, el perfil de los miembros y la organización miembro....

1  ¿Instrucción si en la consulta de la doctrina en Symfony?  ( Instruction if in doctrine query in symfony ) 
¿Cómo puedo hacer algo: public function executeSearch(sfWebRequest $request) { $test = 1; $this->shows = Doctrine_Core::getTable('Show') ...

0  Symfony - Formulario incrustado no se mostrará  ( Symfony embedded form wont display ) 
Estoy tratando de crear un formulario para insertar "Preguntas" que pueden tener una o más "respuestas". Así que quiero agregar un formulario de incrusta para...

0  Wrapper de estilo Neo4j y Doctrine2  ( Neo4j and doctrine2 style wrapper ) 
Realmente he estado probando con este Doctrine2 Style Neo4j Wrapper . Mientras que nunca antes había usado la doctrina, he estado desactivado de los grandes ...

1  Configuración de la ruta de la doctrina  ( Doctrine path setting ) 
Mi configuración de conexión MySQL: <?php mysql_connect("fanyer.fatcowmysql.com", "test_username", "test_password") or die(mysql_error()); echo "Conn...

0  Subvencias en Doctrine 1.2 DQL a partir de  ( Subqueries in doctrine 1 2 dql as from ) 
OK, por lo que el gran problema es obtener las filas en una tabla MySQL que tenga otra fila relacionada en la misma tabla que se incluyan algunas condiciones....

0  Doctrine 1.2 Convenciones de nombres de columna para muchas de muchas relaciones  ( Doctrine 1 2 column naming conventions for many to many relationships ) 
Estoy trabajando con un esquema de base de datos existente, y tratando de configurar dos modelos de doctrina con muchas a muchas relaciones, como se describe...

0  Doctrine2: índice indefinido  ( Doctrine2 undefined index ) 
Cuando intento ejecutar esta consulta DQL: SELECT r, s FROM Rule r JOIN r.splash_page s WHERE r.active = 1 Lo que estoy tratando de hacer es solo unirs...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos