2017-12-12 3 views
0

私はdoctrine 2MySQLデータベース)にjsonカラムを使用しています。 は実際に、私はそれがネイティブクエリメカニズムなしで可能ような作られたクエリですネイティブクエリなしでjsonフィールドにdoctrine findbyを作る方法

$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(); 

のようなネイティブクエリとjsonに私の検索をしましたか? (findByのように)あなたの助けを事前に

感謝;)

答えて

0

私は私の問題を解決しました。 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(); 
関連する問題