2014-12-13 7 views
1

DelegatingReverseEngineeringStrategy를 사용하여 pojos 및 hbm 파일을 생성하려고합니다. 인터페이스, toString 메서드, 모든 테이블 개체에 대한 eager fetching 같은 것을 사용자 정의 할 수 있습니다.DelegatingReverseEngineeringStrategy를 사용하는 Hibernate Reverse Engineering

부모와 자식 사이의 많은 관계에 존재하는 두 개의 테이블 부모와 자식을 고려

는 그러나, 나는이 개 더 많은 기능을 사용자 정의 할 필요가있다.

나는 싶습니다 : 아동 부모 HBM에서 수집

  • 세트 캐스케이드 = "모든"부모 HBM 아동 수집을 위해 내가 업데이트 할 경우 그 정도

    1. 설정 역 = "거짓" 부모 컬렉션은 자식 컬렉션에 효과를 계단식으로 연결해야합니다.

      <hibernate-mapping> 
      <class name="com.xyz.Parent" table="PARENT" schema="FAMILY"> 
          <meta attribute="implements" inherit="false">SomeInterface</meta> 
          <meta attribute="extra-import" inherit="false">com.xyz.SomeInterface</meta> 
          <property name="parentColumn" type="date"> 
          <meta attribute="use-in-tostring" inherit="false">true</meta> 
          <column name="PARENT_COLUMN" length="7" /> 
          </property> 
      <set name="child" table="Child" **inverse="false"** lazy="false" fetch="select" **cascade="all"**> 
      <key> 
          .... 
          </key> 
      <one-to-many class="com.xyz.Child" /> 
      </set> 
      </class> 
      </hibernate-mapping> 
      
    2. 는 자녀의 HBM에서 외래 키로 부모를 제외 - 역 피하기 코드에서 찾아 볼 수 있습니다.

      <hibernate-mapping> 
      <class name="com.xyz.Child" table="CHILD" schema="FAMILY"> 
          <meta attribute="implements" inherit="false">SomeInterface</meta> 
          <meta attribute="extra-import" inherit="false">com.xyz.SomeInterface</meta> 
          <property name="childColumn" type="date"> 
          <meta attribute="use-in-tostring" inherit="false">true</meta> 
          <column name="CHILD_COLUMN" length="7" /> 
          </property> 
      </composite-id> 
      **-- I do not want this in CHILD 
      <many-to-one name="parent" class="com.xyz.Parent" update="false" insert="false" fetch="select"> 
      <meta attribute="use-in-tostring" inherit="false">true</meta> 
      .... 
      </many-to-one>** 
      </class> 
      </hibernate-mapping> 
      

    DelegatingReverseEngineeringStrategy에서 관련 정보를 찾을 수있는 방법이 있습니까? 각 테이블에 대해 일대 다, 일대일 등의 정보를 제공 할 수있는 클래스입니다.

  • 답변

    1

    그것이 DelegatingReverseEngineeringStrategy.foreignKeyToAssociationInfo (외래 키)를 오버라이드 (override) 할 수 있어야한다는 나타납니다 그러나이 함수는 엔티티 생성 빌드 :(

    그냥 정규식이 후 교체 할 수있는 동안 전혀 호출하지 않는 것 구축 받는다는 통해 완료됩니다.

    @ManyToOne($1, cascade=javax.persistence.CascadeType.ALL)\r\n\[email protected]($2, updatable=false, insertable=false)\r\n\tpublic Entity getEntity() 
    
    로 교체

    @ManyToOne\((.*)\)[\r\n\s][email protected]\((.*)\)[\r\n\s]+public Entity getEntity\(\) 
    

    찾기 처럼 Somethign