@ OneToOne (opcional = falso) y @JoinColumn (nullable = falso) se usan juntos

Me topé con este ejemplo en JPA 2.0 FR Specification, 11.1.37. Anotación OneToOne, página 403:

@OneToOne(optional=false)
@JoinColumn(name="CUSTREC_ID", unique=true, nullable=false, updatable=false)
public CustomerRecord getCustomerRecord() { return customerRecord; }

¿Hay alguna razón por la que debería poner@OneToOne(optional=false) y al mismo tiempo poner@JoinColumn(... nullable=false)?

¿No son estas dos declaraciones iguales? ¿No es uno de ellos redundante?
Se utilizan ambos en la generación de esquemas DDL?

Respuestas a la pregunta(1)

Su respuesta a la pregunta