Una de las funciones de Hibernate puede generar DDL desde sus ficheros de mapeo. El esquema generado incluye restricciones de integridad referencial claves principales y foráneas para las tablas de entidades y colecciones. También se creen tablas y secuencias para los generadores de identificadores mapeados.

Tiene que especificar un Dialecto SQL por recurso de la propiedad hibernate.dialect al usar esta dispositivo ya que el DDL es altamente específico de acuerdo con el vendedor.

Primero debe personazar sus ficheros de mapeo para mejorar el esquema generado. La próximo sección aborda la personalización del esquema.

21.1.1. Personalización del esquema

Muchos fundamentos de mapeo de Hibernate determinan atributos opcionales denominados length exactitud y scale. Con estos atributos puede establecer el dimensión la precisión y la escala de una columna.


property name=zip length=5

property name=balance precision=12 scale=2
Determinadas etiquetas también aceptan un atributo not-null para generar una restricción NOT NULL en columnas de tablas y un atributo unique para generar restricciones UNIQUE en columnas de tablas.


many-to-one name=bar column=barId not-null=true

element column=serialNumber type=long not-null=true unique=true
Se puede usar un atributo unique-key para agrupar columnas en una restricción de clave única. Actualmente el valor especificado del atributo unique-keyno se emplea para nombrar la restricción en el DDL generado. Sólamente se emplea para agrupar las columnas en el archivo de mapeo.


many-to-one name=org column=orgId unique-key=OrgEmployeeId
property name=employeeId unique-key=OrgEmployee
Un atributo index especifica el nombre de un índice que se creará utilizando la columa o las columnas mapeadas. Se pueden ser agrupar múltiples columnas debajo el mismo índice simplemente especificando el mismo nombre de índice.


property name=lastName index=CustName
property name=firstName index=CustName
Un atributo foreign-key se puede utilizar para sobreescribir el nombre de cualquier restricción de clave foránea generada.


many-to-one name=bar column=barId foreign-key=FKFooBar
Muchos fundamentos de mapeo también aceptan un fundamento column hijo. Esto es particularmente útil para mapear tipos de multi-columna


property name=name type=my.customtypes.Name
column name=last not-null=true index=bar_idx length=30
column name=first not-null=true index=bar_idx length=20
column name=initial
property

El atributo default le faculta especificar un valor por defecto para una columna. Usted le debe asignar el mismo valor a la propiedad mapeada antes de guardar una nueva instancia de la clase mapeada.


property name=credits type=integer insert=false
column name=credits default=10
property


version name=version type=integer insert=false
column name=version default=0
property

El atributo sql-type faculta al usuario sobrescribir el mapeo por defecto de tipo Hibernate a tipo de datos SQL.


property name=balance type=float
column name=balance sql-type=decimal(133)
property

El atributo check le faculta especificar una comprobación de restricción.


property name=foo type=integer
column name=foo check=foo
10
property


class name=Foo table=foos check=bar 100.0
...
property name=bar type=float
class

La próximo tabla resume estos atributos opcionales.