Я новичок в 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?