2010-07-20 10 views
9

Existe una anotación de hibernación patentada para especificar los clave externa restricción nombres que se utilizan a la hora de la generación de DDL: org.hibernate.annotations.ForeignKey.¿Cómo elegir los nombres de restricción de clave primaria con DDL JPA/Hibernate

¿Existe también una forma de especificar los clave principal restricción nombres?

+0

Otros proveedores de JPA probablemente lo permitan (como los que también admiten la API JDO (por ejemplo, DataNucleus), ya que es estándar con esa API), pero no forman parte de la API JPA (hasta JPA 2.2 inclusive) –

Respuesta

8

No es posible con el estándar JPA y no soportado por Hibernate para restricciones de clave principal ni.

En realidad hay un problema muy antiguo sobre esta solicitud de función (HB-1245) pero parece que no recibe mucha atención.

1

Si estamos hablando acerca de cómo elegir el nombre de su clave primaria (en la base de datos), Hibernate puede no hacer eso.

Recuerde, Hibernate es un marco que se centra principalmente en la asignación de objetos, no en la creación/mantenimiento de entidades de bases de datos.

Con respecto a la definición de la clave principal, en el siguiente enlace (en particular 2.2.3.2) podría ser útil: Mapping identifier properties in the JBoss Hibernate guide

+0

Verdadero , Me refiero al * nombre * de la restricción PK. Dado que hay un mecanismo para hacerlo para las restricciones FK, esperaba que existiera un mecanismo similar para las restricciones PK. – Jan

+0

Parece que JDO (http://java.sun.com/jdo/) le permite al menos definir el nombre del índice que está utilizando: eso no es lo mismo que una clave principal, por supuesto. (ver http://www.objectdb.com/java/jpa/entity/index#Single_Field_Index) – Marco

Cuestiones relacionadas