Как сопоставить внешний ключ от dto объекту объекта, используя ModelMapper? - PullRequest
0 голосов
/ 07 февраля 2020

Это моя userEntity

class UserEntity {
    Long id;
    String name;
}

Это моя учетная запись пользователя

class UserLoginEntity {
    @ManyToOne
    User user;
    String loginTime;
}

Предположим, у одного пользователя может быть много времени входа в систему. Ниже dto, чтобы добавить время входа для пользователя

class UserLoginDto {
    Long user; //User id foreign key
    String loginTime;
}

Теперь я не могу преобразовать UserLoginDto в UserLoginEntity, потому что в dto я передаю пользователя как Long, и он ожидает, что он быть типа User. Можно ли это сделать с помощью утилиты сопоставления моделей?

1 Ответ

0 голосов
/ 07 февраля 2020

Если вы используете ModelMapper, вам нужно назвать свой атрибут userId вместо user.

Или вы можете установить конфигурацию сопоставления модели на LOOSE, например:

modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.LOOSE); и переименуйте user в id.

Здесь - несколько хороших примеров того, как вы должны создавать свои DTO и использовать их с ModelMapper

...