Hibernate Reverse Engineering Использование класса CustomReverseEngineeringStrategy для удаления имени каталога - PullRequest
4 голосов
/ 06 декабря 2011

Я расширил класс org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy для пользовательского обратного инжиниринга, использующего библиотеку инструментов hibernate и скрипт ant.После запуска ant-сценария классы генерируются как -

@Entity
@Table(name="account"
    ,catalog="testdb"
)

public class Account  implements java.io.Serializable {
}

В вышеприведенном классе catalog имя всегда добавляется в создаваемый класс.

Я пытаюсьудалить имя каталога с помощью класса CustomReverseEngineeringStrategy.java.Вот мой класс Java -

public class CustomReverseEngineeringStrategy extends DelegatingReverseEngineeringStrategy {

 public Map<String, MetaAttribute> tableToMetaAttributes(TableIdentifier tableIdentifier){
        Map<String, MetaAttribute> metaAttributes = super.tableToMetaAttributes(tableIdentifier);

        if (metaAttributes == null) {
            metaAttributes = new HashMap<String, MetaAttribute>();
         }

        String catalogName = tableIdentifier.getCatalog();      
        if(metaAttributes.containsKey(catalogName)){
            System.out.print(catalogName);
            metaAttributes.remove(catalogName);         
        }
        return metaAttributes;
    }
}

В этом tableIdentifier возвращает имя каталога.Но нет способа установить имя каталога.Также metaAttributes не содержит ключ для имени каталога.

Я хочу удалить это имя каталога в процессе генерации класса, используя класс CustomReverseEngineeringStrategy.ты можешь помочь мне с этим?

1 Ответ

1 голос
/ 13 декабря 2011

Я исправил это с помощью maven-replacer-plugin.

Может быть, это не то, что вы спрашиваете, но это работает.

    <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>maven-replacer-plugin</artifactId>
        <version>(version)</version>
        <executions>
            <execution>
                <phase>process-resources</phase>
                <goals>
                    <goal>replace</goal>
                </goals>                    
            </execution>
        </executions>
        <configuration>
            <regex>false</regex>
            <token>,catalog="testdb"</token>
            <value></value>
        </configuration>
    </plugin>
...