Email:
columns:
user_id: integer
address: string(150)
relations:
User:
local: user_id
foreign: id
foreignType: one
Si en cambio lo hacemos con esta configuración:
Email:
columns:
user_id: integer
address: string(150)
relations:
User:
local: user_id
foreign: id
type: one
owningSide: true
Obtendremos una relación 1:1 con la particularidad que cada que creemos un objeto User automáticamente symfony (o doctrine, no lo sé) intentará crear un objeto en Email. La mayoría de las veces esto va a resultar problemático, ya que muy probablemente generará errores e interrumpirá las transacciones que tengamos en proceso. Pero si el objeto de la clase 'hija' lo llenamos con valores por defecto o calculados mediante triggers este comportamiento 'extraño' es algo bueno. Debemos tener en cuenta que los campos permitan valores nulos para evitar errores por dejarlos vacíos.