【发布时间】:2011-08-22 23:56:08
【问题描述】:
我想要一个简单的正向 DTO 生成工具,既可以
- 动态生成(例如 cglib - 动态创建类和 DTO 对象)
- 或一个 Eclipse 插件,它将获取实体并生成 DTO(用户将指定要包含的树形图,对于未包含的,将包含外键而不是相关实体等)
例如拿这样的东西
@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 插件,如果没有,我会找人写一个,或者解释为什么我想要的东西没有帮助(并提供替代建议)
【问题讨论】:
-
我们还没有 IDE 插件,但是 Blaze-Persistence Entity Views(github.com/Blazebit/blaze-persistence#entity-view-usage) 使用的界面就像您展示的一样。不过,在某个时候,我们将为此开发 IDE 插件。您可以观看github.com/Blazebit/blaze-persistence/issues/364 以接收有关此问题的更新
标签: java eclipse jpa code-generation dto