Pregunta

Cuando establezco relaciones con JPA usando hibernate, se generan algunos nombres de columna largos y molestos.
P.ej. Tengo el siguiente actionPlan_actionPlanPK , lo que significa que la columna actionPlan es un FK que apunta a actionPlanPK .
Para que se vea un poco más ordenado en el DB, me gustaría poder darle un nombre a mí mismo, preferiblemente solo el nombre que tiene en la clase de entidad propietaria de la relación.

¿Es esto posible con JPA?

¿Fue útil?

Solución

Sí Es posible especificar su propio nombre para una columna si no está satisfecho con los nombres predeterminados. Por ejemplo, en la clase con la referencia al ActionPlan, puede especificar:

@ManyToOne
@JoinColumn(name="actionplanId")
public ActionPlan getActionPlan(){

}

Y, por lo tanto, el nombre de la columna será "actionplanid".

Otros consejos

Esta capacidad es parte de la especificación JPA y permite nombrar muchas de las estructuras de su base de datos en las anotaciones. Estos incluyen:

Nombrando su tabla de la siguiente manera:

@Entity
@Table(name="better_table_name")
public class MyConvolutedClassName {
}

Nombrando sus columnas de la siguiente manera:

@Column(name="better_column_name")
private Date myConvolutedDateColumn;

Nombrar las columnas que forman parte de una relación:

@ManyToOne
@JoinColumn(name="better_join_column_name")
private ClassName otherModelClass;

Hay una excelente (aunque no muy actualizada) hoja de trucos para las anotaciones de EJB 3.0 (que incluye JPA) disponible en http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.pdf .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top