有没有办法(例如Eclipse插件)从实体(JPA)自动生成DTO?

时间:2011-05-11 04:48:07

标签: java eclipse jpa code-generation dto

我想要一个简单的前向DTO生成工具

  1. 动态生成它(例如cglib - 动态创建类和DTO对象)
  2. 或者一个Eclipse插件,它将获取实体并生成DTO(用户将指定要包含的树图,对于未包含的,将包括外键而不是相关实体等)
  3. E.g。拿这样的东西

    @Entity
    @Table(name="my_entity")
    public class MyEntity {
        @Id @GeneratedValue(strategy=GenerationType.AUTO)
        private Long id;
        private String name;
    
        @ManyToOne
        private RelatedEntity related;
         public RelatedEntity getRelated(){
              return related;
         }
         ...
    

    生成这样的东西:

    @Entity
    @Table(name="my_entity")
    public class MyEntity imlpements MyEntityDTO {
        @Id @GeneratedValue(strategy=GenerationType.AUTO)
        private Long id;
        private String name;
    
        @ManyToOne
        private RelatedEntity related;
         //overrides MyEntity interface, it's allowed to narrow return type 
         public RelatedEntity getRelated(){
              return related;
         }
         ...
    
         //implements MYEntityDTO respective interfaces
    
         public Long getRelatedId(){return related.getId();}
    

    和DTO界面:

    public interface MyEntityDTO {
    
        public String getId();
        public String getName();
        public Long getRelatedId();
        public RelatedEntityDTO getRelated(); //RelatedEntity implements RelatedEntityDTO
    
        ...
    }
    
    public interface RelatedEntityDTO {
        ... 
    }
    

    如果我们不想在图表中包含子项,请将其从DTO界面中删除:

    public interface MyEntityDTO {
    
        public String getId();
        public String getName();
        public Long getRelatedId();
    
        ...
    

    我确定它有一些日食插件,如果没有,我挑战某人写一个,或解释为什么我想要的没有帮助(并提供另一种建议)

3 个答案:

答案 0 :(得分:2)

可能Hibernate Tools应该这样做:http://hibernate.org/subprojects/tools.html

答案 1 :(得分:2)

Telosys Tools可以同时生成:JPA实体和DTO

我们来看看这个教程https://sites.google.com/site/telosystutorial/springmvc-jpa-springdatajpa

它使用JPA生成一个完整的Spring MVC CRUD应用程序 架构:https://sites.google.com/site/telosystutorial/springmvc-jpa-springdatajpa/presentation/architecture 还生成映射器实体/ DTO(它使用“org.modelmapper”)

模板可自定义

答案 2 :(得分:0)

试着看看: https://github.com/nikelin/spring-data-generation-kit

但是如果你的项目是在你的项目下,它只适合你 Maven控制。