Настраиваемое присвоение имен столбцам в отношениях JPA

StackOverflow https://stackoverflow.com/questions/218504

Вопрос

Когда я устанавливаю отношения с JPA, используя hibernate, генерируются какие-то ужасно длинные и неудобные имена столбцов.
Например.У меня есть следующее actionPlan_actionPlanPK, что означает , что столбец actionPlan является FK , который указывает на actionPlanPK.
Чтобы он выглядел немного более аккуратно в БД, я бы хотел, если бы я мог сам присвоить ему имя, предпочтительно просто то имя, которое у него есть в классе сущностей, которому принадлежит отношение.

Возможно ли это с помощью JPA?

Это было полезно?

Решение

ДА.Вы можете указать свое собственное имя для столбца, если вас не устраивают имена по умолчанию.Например, в классе со ссылкой на ActionPlan вы можете указать:

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

}

И, таким образом, имя столбца будет "actionplanid".

Другие советы

Эта возможность является частью спецификации JPA и позволяет именовать многие из ваших структур базы данных в аннотациях. К ним относятся:

Назовите вашу таблицу следующим образом:

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

Называйте столбцы следующим образом:

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

Наименование столбцов, которые являются частью отношений:

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

На сайте http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.pdf .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top