Muchos-a-Uno con múltiples entidades objective

Esto parece simple, pero no puedo hacerlo bien:

Hay tres entidades: Fruit , Vegetable y Snack . Snack tiene la id los campos, el time y la food . La comida es una referencia a una fruta o una verdura. Por lo tanto, es básicamente una relación de muchos a uno / uno a muchos, ya que una merienda siempre contendrá solo un alimento. Pero hay más de una entidad objective.

¿Cómo puedo mapear esto en Doctrine2?

Una solución simple que hubiera usado antes de conocer Doctrine2 sería usar dos campos: food_type y food_id . Pero, ¿cómo puedo establecer una conexión entre el tipo de alimento y la entidad correcta? Pensé en una matriz de JoinColumns pero no puedo encontrar una forma de conectar la entidad correcta. También eché un vistazo a las superclases mapeadas porque hay un DiscriminatorColumn, pero también parece ser el enfoque equivocado. Si lo hago bien, la superclase no puede ser una entidad en sí misma, así que no puedo crear una entidad alimentaria.

Cualquier ayuda es apreciada. Estoy seguro de que me falta algo simple aquí.

Puede crear una superclase mapeada (abstracta) llamada Food , que puede contener información básica sobre Fruit y Vegetable .

La palabra clave para su pregunta es inheritance mapping , esta es la documentación para ello: http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html

Entonces podrías hacer referencia a esta superclase mapeada en tu relación de entidad.