Я экспериментировал с использованием JHipster v6.0.1 с генерацией DTO и без нее (предоставляется через MapStruct).Проекты работают правильно в обеих конфигурациях.Однако я заметил, что аннотации Джексона генерируются на объектах Hibernate независимо от выбора DTO.Поскольку DTO используются для сериализации в / из JSON, не являются ли они избыточными в этой ситуации?
Может быть, я чего-то упускаю, возможно, они необходимы для использования с Elasticsearch?В противном случае, кажется, что это небольшая ошибка, которую следует подать.
Я создал много проектов JHipster для тестирования его возможностей.Простой файл JDL представлен ниже:
application {
config {
baseName proj
applicationType monolith
packageName com.mycompany.proj
authenticationType session
buildTool maven
databaseType sql
devDatabaseType h2Memory
prodDatabaseType postgresql
cacheProvider no
enableHibernateCache false
clientFramework react
useSass true
enableTranslation false
}
entities *
}
entity Box {
label String required
}
entity Item {
count Integer required
}
entity Product {
description String required,
}
entity Sku {
barcode String required,
}
relationship OneToMany {
Box{item} to Item{box},
Item{product} to Product{item}
}
relationship OneToOne {
Product{sku(barcode)} to Sku
}
// Set pagination options
paginate * with pagination
// Set service options (prefer class to interface for less boilerplate)
service * with serviceClass
// Use Data Transfert Objects (DTO)
dto * with mapstruct
При использовании опции DTO не следует создавать аннотации Джексона для сущностей.Это сохраняет отдельные слои, которые генерируются "чистыми".