How to select discriminator column in doctrine 2

前端 未结 3 1118
长情又很酷
长情又很酷 2020-12-20 17:14

I need some help when select only discriminator column from doctrine 2 when run the DQL below

SELECT p.type FROM AppBundle\\Entity\\Product p
3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-20 17:56

    You should be able to do this with a scalar result with INSTANCE OF and a case, when, (else,) end clause:

    SELECT
      (case
         when p INSTANCE OF AppBundle\Entity\Product then \'0\'
         when p INSTANCE OF AppBundle\Entity\Product\SingleIssue then \'1\'
         when p INSTANCE OF AppBundle\Entity\Product\CountBasedIssue then \'2\'
         when p INSTANCE OF AppBundle\Entity\Product\TimeBasedIssue then \'3\'
         else \'foobar\'
       end) as type
    FROM
      AppBundle\Entity\Product p
    

    Of course the disadvantage is you have to update the query every time you add a DiscriminatorMap entry.

提交回复
热议问题