2017-12-12 1 views
0

machen Ich verwende json Spalte in doctrine 2 (In MySQL Datenbank). Eigentlich habe ich meine Suche in json mit nativen Abfrage wieWie Doktrin findby zu JSON-Feld ohne native Abfrage

$rsm = new ResultSetMappingBuilder($entityManager); 
$rsm->addRootEntityFromClassMetadata(\blabla\MyObject::class, 'o'); 
$query = $entityManager->createNativeQuery('select o.* from my_objects o where json_extract(jsonData, "$.test.key1")= "value1"', $rsm); 
//jsonData column contains {"test": {"key1" : "value1"}} 
$result = $query->getResult(); 

Ist es möglich, die gemachte Abfrage wie das ohne den native Abfragemechanismus? (wie ein findBy)

Vielen Dank im Voraus für Ihre Hilfe;)

Antwort

0

löste ich mein Problem. I found this extension of DQL.

$queryBuilder = $entityManager->createQueryBuilder(); 
$query = $queryBuilder 
    ->select("o") 
    ->from(\bla\bla\MyObject::class, "o") 
    ->where("JSON_EXTRACT(o.jsonData, :jsonPath) = :value ") 
    ->setParameter('jsonPath', '$.test.key1') 
    ->setParameter('value', 'value1') 
    ->getQuery(); 

$co = $query->getResult(); 
Verwandte Themen