grails hasOne vs variable miembro directa

Digamos que tengo una clase de dominio Grails que parece

class Person {
    Address address
}

También podría declararlo como

class Person {
  static hasOne = [address:Address]
}

La segunda forma movería la clave externa a la tabla de direcciones en lugar de a la tabla de personas.

¿Cuáles son los beneficios (o desventajas) prácticos de hacerlo de una manera en comparación con la otra? Por lo que yo entiendo, ambos usarán claves externas, es solo una cuestión de dónde vive la clave externa.

Respuestas a la pregunta(4)

Su respuesta a la pregunta