IntelliJ IDEA 10 создает объект (POJO) из модели БД - PullRequest
66 голосов
/ 10 марта 2011

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

Ответы [ 2 ]

115 голосов
/ 10 марта 2011

ОБНОВЛЕНИЕ:
В IntelliJ 16 эта функция теперь реализована.Чтобы сделать это, выполните следующие действия:
1. База данных просмотр контекстного меню
2. Сценарии расширений
3. Генерация POJO


Подробнее можно прочитать здесь:
Запрос функции: разрешить "генерировать классы из схемы базы данных" для разработчиков на простом JDBC


Сначала вам нужно сообщить intelliJ, что вы используете Hibernate (полагаю, выесли вам нужен orm pojo таблицы)

  1. Перейдите в «Структура проекта» ( alt + ctrl + shift + s )
  2. В «Настройках проекта» выберите «Модули»
  3. Нажмите + и добавьте фасет Hibernate в свой модуль.

Теперь у вас есть настроенный аспект конфигурации Hibernate, и вы можете извлекать ваши pojos.

  1. В нижней правой горизонтальной панели вы увидите вкладку «Постоянство» (если вы не можетенайти вкладку «Постоянство» можно, выбрав «Вид»> «Окна инструментов»> «Постоянство»)
  2. Там можно щелкнуть правой кнопкой мыши спящий режим.значок ели, названный как ваш модуль
  3. Перейдите к «Сгенерировать отображение постоянства» - «по схеме базы данных»
  4. Теперь, я думаю, вы можете найти свой путь ...
  5. В общемВ настройках выберите источник данных, который вы хотите использовать, и теперь вы можете видеть все таблицы в вашем объекте источника данных
  6. Теперь вы можете делать много вещей, добавлять отношения со знаком +, изменять имя и тип свойств pojoи т. д. примечание: если вы получаете сообщение об ошибке и «ОК» отключено, вероятно, это потому, что тип данных, найденный intelliJ для вашего pojo, недопустим.Просто замените его на тот, который вам нужен, и вы готовы к работе!
5 голосов
/ 26 июля 2017

Значение по умолчанию 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

...