Con el OnDelete anotación el DDL debe ser correcto. ¿Podría verificar cómo está configurando SessionFactory? , en concreto, qué valor está utilizando para el parámetro hbm2ddl.auto.
ACTUALIZAR
- Con respecto a su problema con el
UserProviderclase. Primero, el mapeo parece ser bidireccional, pero un lado debe ser el lado propietario y el otro debe ser el lado inverso. Lo que significa que el propietario de la relación es el que conserva la relación en la tabla de combinación, y el otro debe asignarse con elmappedByparámetro y no controla la relación. Entonces elOneToManycon elmappedByapuntando alusermiembro deUserPropertyserá el lado inverso, YUserPropertyserá el lado del propietario, y debería estar elOnDeleteanotación. Pero déjame probarlo mañana para estar seguro, no estoy frente a mi estación de desarrollo.