2009-07-13 1 views

답변

1

당신은이에 대한 최대 절전 모드 리버스 엔지니어링 도구를 사용해야합니다 추천 할 것입니다. 자세한 내용은 hibernate reverse engineering tools documentation을 참조하십시오.

JPA 어노테이션이 적용된 클래스를 생성하는 방법은 분명하지 않지만 어노테이션을 선호하는 새로운 프로젝트 인 경우 더 이상 hbm.xml 파일을 사용하지 말아야한다고 생각할 수 있습니다.

+0

링크가 손상된 것 같습니다. 관련성이있는 링크를 찾았지만 어느 것이 가장 좋을지 잘 모르겠습니다. 다시 찾아서 깨진 링크를 고칠 수 있습니까? 감사합니다 – ForceMagic

3

저는 Hibernate Tools (사이트에서 제공 한 예제)를 매우 즐겁게 사용했습니다. 아래에서는 필자의 구체적이고 진보적이며 흥미로운 (내가 생각하는) 사용 사례에 대해 자세히 설명합니다.


사실, 나는 우리의 큰 프로젝트에 흥미로운 도전에 직면했다

  • 새로운 테이블이 도착 했을까 (데이터베이스 기반 팀 800 테이블에 접근), 그래서 (데이터베이스 에서 그들을 생성 할 수 HibernateTools를 사용하고 Annotated Entities 생성하기) (실제로 다른 프로세스를 사용 중입니다 ...)
  • 그러나 mosts 테이블은 새 것이 아니며 이미 java 구현과 .hbm.xml을가집니다. 둘 다 가끔 원래 생성 된 DB에서 수정되었으므로 아무 것도 손상시키지 않는 보증을 통해 다시 생성 할 수 없었습니다. 엔티티를 가능한 한 적게 (즉, 어노테이션 만) 변경해야했습니다! 우리의 전형적인 옛 실체는 약 100 회원 가지고 있기 때문에

    • 이은 빠르고도 할 필요가 (자신의 DB를 열 플러스 역 외래 키에서 오는 엔티티의 컬렉션을!).

      참고 : 두 개체를 생성 된 전체 생성자로 컴파일 할 수 없으므로 256 개의 매개 변수 제한이 깨졌습니다. 그러나이 생성자는 어쨌든 쓸모가 없었지만 256 개 매개 변수의 순서를 기억할 수 있었으므로 삭제했습니다.

    • 또한 내 세트를 일반 세트로 마이그레이션하려고했습니다. (지금까지는 신경 쓰지 않았던 설정자를 제외하고). 의 .hbm.xml 파일이었다

      • 정보의 출처 : 매핑 마이그레이션을위한

  • , 나는 다음과 같이 (필요한 템플릿 코드로 사용자 정의) 최대 절전 모드 도구를 사용 hibernate.cfg.xml 파일

    참고 : 먼저 hibernate.cfg.xml을 추출하여 목록을 포함하는 스프링 빈을 대체해야했습니다. 그러나 이것은 Squirrel과 같은 DB 도구에도 유용했기 때문에 HQL 완성을 가능하게 할 수있었습니다 ...

  • 생성 된 출력은 X2.java 파일 (X.필드 만, getter와 주석 (아무 세터 또는 생성자) (일반 설정)

I가 이클립스 컴파일러 (오류 "중복 ...")를 사용하는 것을 포함하는 동일한 패키지에 자바 클래스) 실수를 줄이기 위해 실수를 줄이기 위해 편집 작업을 다시 한 번 확인해보십시오 (실수는 옵션이 아니 었습니다. 제작에 많은 고객이 있습니다!). 각 마이그레이션 클래스에 대해, 나는 기존의 클래스에 생성 복사 할 다음 .hbm.xml

  • 컷 대신 클래스를 사용하여 클래스 이름 앞에 @Entity을 붙여

    • 변경 persistence.cfg.xml
    • 기존 필드 다음에있는 모든 Set 필드를 잘라내어 붙여 넣기 만하면 컴파일 오류가있는 기존 필드 만 삭제합니다 (결과적으로 일반 세트가있는 필드가 생겼습니다).
    • 모든 getter를 잘라내어 붙여 넣습니다. 클래스) 기존의 setter 후에
    • public dy 만 보여주는 개요보기를 엽니 다. 알파벳 순으로 정렬 된 음표 방법
    • 오류가없는 각 게터를 검사합니다 (잘못된 것이 있는지 또는 그로부터 떨어 졌는지 조사 ...)
    • 오류가있는 메서드 만 고려하여 각 게터를 검사합니다. 메서드의 두 번째 인스턴스를 삭제하고 주석을 첫 번째 인스턴스 (개요보기를 사용한 탐색)로 복사합니다 (클래스의 메서드 순서는 그대로 유지되며 CVS 기록에서 중요합니다. , 특히 이주가 코드를 깨뜨리지 않았다는 것을 불신자에게 증명할 때, 그것은 이미 이전에 깨졌습니다!).
    • ... 추가 논의를 위해 왼쪽으로 몇 가지 세부 ... 호기심에 대한

    , 우리는 200 개 주석 기관 :-) 가까이에있어이 달. 일반적인 100 개의 필드 엔티티가 마이그레이션하는 데 약 30 분의 작업이 필요합니다. 남아있는 600 개의 엔티티에 대해이 cut'n 붙여 넣기를 완료하는 데 300 시간 밖에 남지 않았습니다! ;-)

  • +0

    "참고 : 두 엔티티는 생성 된 전체 생성자로 컴파일 할 수 없으며 256 개의 매개 변수 제한을 초과했습니다! 그러나이 생성자는 아무리해도 쓸모가 없었지만 256 개 매개 변수의 순서를 기억할 수있어 삭제했습니다." - 어떻게? 빌드 후 삭제 했습니까? 전체 생성자를 생성해서는 안된다는 것을 hbm에서 지정하는 방법을 알고 있습니까? – WhyGeeEx

    0

    Netbeans에는 설정 파일, 주석이 달린 파일 등을 생성하는 기능이 있습니다.

    관련 문제