2013-09-06 9 views
0

При определении сущности JPA, как это:Изменение наименования стратегии @Table и @Column с EclipseLink к Строчные

@Entity 
@Table 
public class CaseExample implements Serializable { 
    @Id 
    Long id; 
    @Basic 
    String fooBar; 
} 

автоматически создается имя SQL таблицы «CASEEXAMPLE» и имя столбца «FOOBAR» , Как я могу изменить это из верхнего регистра в нижний регистр с подчеркиванием, например. "case_example" и "foo_bar" без, чтобы добавить имя = "foo_bar" к каждому @Table и @Column?

Является ли стратегия именования, определяемая JPA или имплементацией? Я использую JPA 2.0 с EclipseLink 2.5.0.

+0

Какова целевая база данных? и ОС? –

+0

Это MySQL 5.6 на Debian GNU/Linux «sid». – lathspell

ответ

1

JPA стандартизирует имена. Я бы оставил их с использованием стандарта или использовал @Column для изменения определенных.

С помощью EclipseLink вы можете изменить имена столбцов, используя собственный код в DescriptorCustomizer или SessionCustomizer. Вы просто перебираете отображение своего дескриптора и перезапускаете имена полей на основе вашего соглашения об именах.

+1

Спасибо, используя SessionCustomizer в качестве условия поиска. Теперь я нашел следующий ответ, который дает пример: http://stackoverflow.com/questions/15441931/eclipselink-custom-table-and-column-naming-strategy – lathspell