Groovy: отображение объектов данных - PullRequest
0 голосов
/ 20 сентября 2019

Я новичок в Groovy и экспериментирую с языком.Я пишу привет приложение Spring Boot с базой данных.У меня есть POGO (простой старый объект Groovy) для моей базы данных:

@Entity(name = "deployment")
class DeploymentEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id

    @Column
    String name

    @Column
    String namespace
}

и другой POGO для моего REST API:

class Deployment {
    @NotNull
    @Size(min = 1, max = 50)
    String name

    @NotNull
    @Size(min = 1, max = 50)
    String namespace
}

Обратите внимание, что они почти идентичны, ноЯ нарочно пропустил идентификатор в REST API (просто для удовольствия).

В Java я обычно использовал бы MapStruct, чтобы избежать необходимости писать самому скучный код, который отображается между похожими классами.Я пытался использовать MapStruct, но я не думаю, что он работает с Groovy (я не получил ошибку, просто ничего не делал, поэтому я предполагаю, что он работает только с исходными кодами Java).

ИтакЯ заканчиваю тем, что сам пишу логику отображения:

@Component
class ModelMapper {
    Deployment toModel(DeploymentEntity deploymentEntity) {
        new Deployment(
            name: deploymentEntity.name,
            namespace: deploymentEntity.namespace
        )
    }

    DeploymentEntity toEntity(Deployment deployment) {
        new DeploymentEntity(
            name: deployment.name,
            namespace: deployment.namespace
        )
    }
}

Мой вопрос: есть ли лучший / более идиоматический способ сделать это в Groovy?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...