ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-是否有一种方法(例如Eclipse插件)自动从实体(JPA)生成DTO?

2019-11-02 17:00:45  阅读:520  来源: 互联网

标签:dto eclipse jpa code-generation java


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

>即时生成(例如cglib-动态创建类和DTO对象)
>或将使用Entity并生成DTO的Eclipse插件(用户将指定要包含的树图,对于不包含的树图,则将包含外键而不是相关实体等)

例如.像这样

@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();

    ...

我确定有一些eclipse插件,如果没有,我会挑战某人写一个,或者解释为什么我想要的东西没有帮助(并提供替代建议)

解决方法:

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

标签:dto,eclipse,jpa,code-generation,java
来源: https://codeday.me/bug/20191102/1992962.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有