Конфигурация TypeMap ModelMapper для аналогичных имен атрибутовJAVA

Программисты JAVA общаются здесь
Anonymous
Конфигурация TypeMap ModelMapper для аналогичных имен атрибутов

Сообщение Anonymous »

Я ищу способ реализовать какой -то общий путь (Typemap /Enyal Free), который позволил бы мне нанести карту определенного типа объекта в разделенные атрибуты при сопоставлении DTO на сущность. < /p>
Некоторая базовая информация - у меня есть класс idname, который выглядит так: < /p>

Код: Выделить всё

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class IdName implements Serializable {
@NonNull private Long id;
@NonNull private String name;
}
< /code>
Теперь у меня есть много DTO, у которого будет представление Idname определенного поля - f.ex. < /p>
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Book implements Serializable {
private String title;
private IdName author;
}
< /code>
или: < /p>
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Movie implements Serializable {
private String title;
private IdName director;
}
< /code>
То, что я сейчас ищу, - это способ сказать модели Mapper:
Каждый раз, когда вы хотите сопоставить любое idname с long /string - используйте идентификатор или имя соответственно (соответственно ( и наоборот).
, что позволило бы мне сохранить свое автоматическое отображение с использованием ModelMapper для конвертации между запросом DTO (только принятие F.Ex.ex.), Dao Entity (все еще полагаясь только на ID) и ответ DTO (возвращение И идентификатор, и имя).
Обычно я мог бы представить тип -карту от idname до long/string и наоборот. Проблема здесь заключается в том, что ModelMapper по -прежнему требует, чтобы атрибуты были названы таким же образом, в то время как в моем случае будет разница - один был бы F.Ex. Authorid 
и объект idname в ответе будет автором .
Так что я ищу хороший способ настроить ModelMapper, чтобы всегда пытаться картировать атрибуты IdName к их соответствующему имени атрибута + id и имя атрибута + name .
На основе приведенного выше примера DTO, давайте предположим, что у меня также есть объекты DAO, такие как следующее: < /p>

Код: Выделить всё

@Entity
@Table(name = "movies")
@Getter
@Setter
public class MovieEntity {
private String title;
private Long directorId;
}
< /code>
и < /p>
@Entity
@Table(name = "books")
@Getter
@Setter
public class BookEntity {
private String title;
private Long authorId;
}
Каждый раз, когда я прошу BookDto /

Код: Выделить всё

MovieDto
быть сопоставленным с bookentity /

Код: Выделить всё

MovieEntity
В идеале я бы хотел, чтобы Model Mapper по сравнению с:
  • Если это объект idname , получите имя атрибута и попробуйте отобразить Идентификатор для атрибута имени + id (в примере книг - Автор типа idname попытается отобразить идентификатор (long) к авторидению и name (string) к Authorname на целевом объекте.
Так что в основном я ищу способ предоставить определенную типовую карту (в данном случае idname long и idname string ), но в то время, позволяющее «наклонить сопоставление» на основе имен атрибутов. Возможный объект idname, как авторы, директора, ... так что я могу предварительно определить модельм, какие поля idname должны быть переведены на сглаженные атрибуты идентификатора/имени.
Я бы предпочел не определять Это для каждого типа класса отдельно, скорее, есть способ сказать F.Ex. Код> поле

Подробнее здесь: https://stackoverflow.com/questions/794 ... bute-names

Вернуться в «JAVA»