program tip

IntelliJ IDEA 10 DB 모델에서 엔티티 (POJO) 생성

radiobox 2020. 11. 11. 19:42
반응형

IntelliJ IDEA 10 DB 모델에서 엔티티 (POJO) 생성


IntelliJ IDEA 10을 사용하여 데이터베이스 모델에서 엔티티 (POJO)를 생성하려면 어떻게해야합니까? IntelliJ에서 "데이터 소스"를 생성하지만 POJO를 생성 할 수있는 방법을 모르겠습니다.


업데이트 :
IntelliJ 16에서는이 기능이 현재 구현되었습니다. 이를 수행하는 단계는 다음과 같습니다.
1. 데이터베이스 보기 컨텍스트 메뉴
2. 스크립팅 된 확장
3. POJO 생성


자세한 내용은 여기에서 읽을 수 있습니다.
기능 요청 : 일반 JDBC 개발자를위한 "데이터베이스 스키마에서 클래스 생성"허용


먼저 intelliJ에게 Hibernate를 사용하고 있음을 알릴 필요가 있습니다 (테이블의 orm pojo가 필요한 경우라면 그렇습니다)

  1. "프로젝트 구조"로 이동 ( alt+ ctrl+ shift+ s)
  2. "프로젝트 설정"에서 "모듈"을 선택하십시오.
  3. +모듈에서 Hibernate 패싯을 누르고 추가하십시오.

이제 최대 절전 모드 구성 패싯을 설정하여 pojos를 추출 할 수 있습니다.

  1. 오른쪽 하단 수평 패널에 "지속성"이라는 탭이 표시됩니다 (지속성 탭을 찾을 수없는 경우보기> 도구 창> 지속성을 선택하여 표시 할 수 있습니다).
  2. 여기에서 모듈과 같은 이름의 최대 절전 모드 아이콘을 마우스 오른쪽 버튼으로 클릭 할 수 있습니다.
  3. "지속성 매핑 생성"- "데이터베이스 스키마 별"로 이동합니다.
  4. 이제 길을 찾을 수있을 것 같아요 ...
  5. 일반 설정에서 사용할 데이터 소스를 선택하면 이제 데이터 소스 개체의 모든 테이블을 볼 수 있습니다.
  6. 이제 많은 작업을 수행하고, + 기호로 관계를 추가하고, pojo 속성의 이름과 유형을 변경하는 등의 작업을 수행 할 수 있습니다. 참고 : 오류가 발생하고 "OK"가 비활성화되면 intelliJ가 찾은 데이터 유형 때문일 수 있습니다. pojo가 유효하지 않습니다. 필요한 것으로 변경하기 만하면 바로 사용할 수 있습니다!

기본 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

참고 URL : https://stackoverflow.com/questions/5259276/intellij-idea-10-generate-entity-pojo-from-db-model

반응형