Avatar ·

¿Qué valores puede tomar Hibernate hbm2ddl.auto y qué hacen?

¡Hola a todos! Soy nuevo en Java y Hibernate, y no logro entender la configuración hbm2ddl.auto en el archivo hibernate.cfg.xml. He visto en diferentes proyectos valores como: create, update, validate, create-drop y none. Pero la documentación me resulta demasiado compleja.

Aquí hay un ejemplo de mi configuración:

<property name="hibernate.hbm2ddl.auto">update</property>

Ejecuto la aplicación y parece funcionar, pero temo que al modificar las entidades (agregar un nuevo campo) los datos en la base de datos puedan perderse. Por ejemplo, tengo una clase User con los campos id, name y email. Si agrego el campo phone, ¿qué pasará con la tabla? ¿Hibernate agregará la columna automáticamente? ¿Y si elimino el campo email, se eliminará la columna? ¿Y qué sucede si pongo create? ¿Se perderán todos los datos?

Por favor, indíquenme.