2014-10-10 5 views
0

Я хотел бы создать настраиваемый DAO, который расширяет ClassA и реализует SampleInterface. У SampleInterface есть метод, который должен быть реализован при создании этого DAO. Кроме того, соглашение об именах генерируемого мной DAO должно иметь DAO в конце имени класса, но не «Главная», так как инструменты спящего режима генерируют DAO Classes with Home в конце по умолчанию.Как сгенерировать настраиваемый DAO с помощью инструментов гибернации

Мои имена таблиц - это сотрудник, адрес, зарплата, и у меня есть сущность, и они находятся в пакете com.mycompany.model. В настоящее время у меня есть Address, Employee, Salary Entities со всеми аннотациями и отображением в нем. Я хочу генерировать AddressDAO, EmployeeDAO и SalaryDAO, используя ниже обратную инженерную стратегию.

Ниже мой класс Reverse Engineering Стратегия

public class DAOReverseEngineeringStrategy extends 
      DelegatingReverseEngineeringStrategy { 

     public DAOReverseEngineeringStrategy(ReverseEngineeringStrategy delegate) { 
      super(delegate); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     public Map tableToMetaAttributes(final TableIdentifier tableIdentifier) { 
      Map<String, MetaAttribute> metaAttributes = super 
        .tableToMetaAttributes(tableIdentifier); 
      if (metaAttributes == null) { 
       metaAttributes = new HashMap<String, MetaAttribute>(); 
      } 

      MetaAttribute attributeExtends = new MetaAttribute("extends"); 
      attributeExtends.addValue("ClassA"); 
      metaAttributes.put("extends", attributeExtends); 

      MetaAttribute attributeImpl = new MetaAttribute("implements"); 
      attributeImpl.addValue("SampleInterface"); 
      metaAttributes.put("implements", attributeImpl); 

      MetaAttribute attributeImport = new MetaAttribute("extra-import"); 
      attributeImport.addValue("com.mycompany.ClassA"); 
      attributeImport.addValue("com.mycompany.SampleInterface"); 
      attributeImport.addValue("com.mycompany.model.*"); 
      metaAttributes.put("extra-import", attributeImport); 

      return metaAttributes; 
     } 
    } 

Спасибо.

ответ

0

Не уверен, что это все еще открыто, но хотел бы поделиться своим ответом.

Я не пробовал его с помощью класса Reverse Engineering Strategy, но да, с файлами ftl (free marker), доступными в dao/daoHome.ftl.

 Смежные вопросы

  • Нет связанных вопросов^_^