2017-02-22 10 views
0

Я использую отражение, чтобы получить поляПреобразовать ява поля имя для Hibernate имя

Field[] testContent = menu.getClass().getDeclaredFields();

, который возвращает мне переменные, как

fieldIdfieldName

и так далее.

Так что мне нужно, чтобы преобразовать их в стиле Hibernate как

FIELD_ID, FIELD_NAME

Так есть все, что готов я могу использовать, потому что я имел в виду использовать регулярные выражения, чтобы разбить его, но я надеюсь, там что-то уже есть.

+0

Мог бы предоставить больше контекста тому, что вы хотели бы достичь с этим? – rilaby

+0

Вы просто хотите «Hibernate style», или хотите динамически отображать таблицы, сгенерированные Hibernate? –

ответ

0

гуавы обеспечивает такую ​​функциональность:

System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, "fieldName")); 

Выход FIELD_NAME

0

Имена зависят от используемого Hibernate naming strategy. В зависимости от версии и того, чего вы пытаетесь достичь, вы можете попытаться использовать общедоступный API стратегии именования, которую вы используете, чтобы получить имена таблиц непосредственно из классов Java, вместо использования отражения, например. classToTableName для default naming strategy.