Как я могу сгенерировать сущность (POJO) из модели базы данных с помощью IntelliJ IDEA 10. Я создаю "Источник данных" в IntelliJ, но я не знаю, как я могу создать POJO.
IntelliJ IDEA 10 сгенерирует объект (POJO) из модели БД
Ответ 1
Шаги просты, но я думаю, что это сложно, поскольку вы привыкли к интерфейсу eclipse (я бы чувствовал то же самое, если бы мне пришлось делать это в Eclipse)
Сначала вам нужно сказать intelliJ, что вы используете Hibernate (я думаю, вы, если вам нужно orm pojo таблицы)
- Перейдите в раздел "Структура проекта" (alt + ctrl + shift + s)
- В "Настройки проекта" выберите "Модули"
- Нажмите + и добавьте фасет Hibernate в ваш модуль.
Теперь вы настроили фасет конфигурации спящего режима, вы можете извлечь свои pojos.
- На нижней правой горизонтальной панели вы увидите вкладку под названием "Стойкость" (если вы не можете найти вкладку "Сохранение", вы можете показать ее, выбрав "Просмотр" > "Инструменты" > "Устойчивость" ).
- Здесь вы можете щелкнуть правой кнопкой мыши по значку спящего режима, названному как ваш модуль.
- Перейдите к разделу "Создание сопоставления настойчивости" - "по схеме базы данных"
- Теперь я думаю, вы можете найти свой путь...
- В общих настройках выберите источник данных, который вы хотите использовать, и теперь вы может видеть все таблицы в объекте источника данных.
- Теперь вы можете делать много вещей, добавлять отношения с знаком +, изменять имя и тип свойств pojo и т.д. примечание: если вы получили сообщение об ошибке, а "ОК" отключено, вероятно, потому, что данные тип, который обнаружен intelliJ для вашего pojo, недействителен. Просто измените его на один вам нужно, и вы готовы к работе!
UPDATE:
В IntelliJ 16 эта функция теперь реализована.
Шаги для этого:
База данных контекстное меню
Расширения скриптов
Создание POJO
https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FIDEA-66037
Ответ 2
По умолчанию Scripted Extensions Generate POJOs.groovy
не очень хорошо работает с таблицами с подчеркиванием (что очень часто).
Поэтому я вносил некоторые изменения.
Основной код
def calcFields(DasObject table) {
DasUtil.getColumns(table).reduce([]) { fields, col ->
def spec = Case.LOWER.apply(col.dataType.specification)
def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value
fields += [[
name : javaName(col.name, false),
type : typeStr,
annos: """
/**
* $col.comment
*/"""]]
}
}
static String javaName(String str, boolean capitalize) {
def s = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, str);
capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1]
}
Здесь вы можете найти весь текст https://gist.github.com/aristotll/ad799a7462e8b705b26103944cca24a6