Ahora que ya tenemos preparadas las clase Java para que puedan persistirse veamos el código necesario para persistirlas.
Direccion direccion=new Direccion(1, "Plaza del ayuntamiento", 8, "Xativa", "Valencia");
Alumnado alumnado=new Alumnado(1, "Juan", "Perez", "García");
alumnado.setDireccion(direccion);
Session session=sessionFactory.openSession();
session.beginTransaction();
session.save(alumnado);
session.getTransaction().commit();
session.close();
Como podemos ver no hay nada nuevo en el código Java para persistir una relación uno a uno, simplemente creamos las 2 clases (Líneas 1 y 2) y establecemos la relación entre ambas asignando al objeto Alumnado la referencia al objeto Direccion (Línea 3). Por último, simplemente persistimos la clase Alumnado tal y como se ha explicado anteriormente.
Al ejecutar el ejemplo Hibernate vemos cómo se han creado las filas en las tablas Alumnado y Direccion mientras que desde Java sólo se ha persistido la clase Alumnado.
Si vemos el log que se genera al persistir los 2 objetos, podemos ver que se realiza primero una orden SELECT contra la tabla Direccion para comprobar si ya existe la dirección en la base de datos. Ésto lo realiza hibernate ya que, si ya existe, no es necesario insertar la fila de la dirección pero, si los datos son distintos, hibernate lanzará un UPDATE para modificarlos.