Есть ли способ (например, плагин Eclipse) для автоматического создания DTO из сущности (JPA)? - PullRequest
3 голосов
/ 11 мая 2011

Я бы хотел простой инструмент генерации DTO, который бы либо

  1. Создайте его на лету (например, cglib - создайте класс и объект DTO на лету)
  2. Или Eclipse-плагин, который будет принимать Entity и генерировать 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, и если нет, я призываю кого-то написать его или объяснить, почему то, что я хочу, не помогает (и предоставить альтернативное предложение)

Ответы [ 3 ]

2 голосов
/ 05 декабря 2014

Telosys Tools может генерировать как JPA-объект, так и DTO

Давайте посмотрим на этот урок https://sites.google.com/site/telosystutorial/springmvc-jpa-springdatajpa

генерирует полноценное приложение Spring MVC CRUD с JPA Архитектура: https://sites.google.com/site/telosystutorial/springmvc-jpa-springdatajpa/presentation/architecture Также создается объект Entity / DTO (используется "org.modelmapper")

Шаблоны настраиваемы

2 голосов
/ 11 мая 2011

Вероятно, Hibernate Tools должен делать это: http://hibernate.org/subprojects/tools.html

0 голосов
/ 30 апреля 2013

Попробуйте взглянуть на: https://github.com/nikelin/spring-data-generation-kit

Но это подходит вам, только если ваш проект находится под контролем Maven.

...