Подтвердить что ты не робот

IntelliJ IDEA 10 сгенерирует объект (POJO) из модели БД

Как я могу сгенерировать сущность (POJO) из модели базы данных с помощью IntelliJ IDEA 10. Я создаю "Источник данных" в IntelliJ, но я не знаю, как я могу создать POJO.

4b9b3361

Ответ 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