Сделайте два объекта для машин - PullRequest
0 голосов
/ 16 января 2019

Итак, у меня есть два объекта: один из моего DTO, а другой из сервиса пользователя.

Я хочу скрыть ранее сохраненное значение для выбора.

но из-за того, что объекты разные, значение не отображается (вот что я думаю)

Это объект с данными.

enter image description here

А это объекты из списка в списке выбора

enter image description here

¿Так как же я могу удалить или отфильтровать его по мач?

1 Ответ

0 голосов
/ 18 января 2019

Неправильный JHipster генерировал в DTO длинное использование. Затем на угловой стороне они получают всех пользователей и сравнивают идентификатор, когда я сохраняю сущность. Я получаю объект пользователя, используя поиск UserService при входе в систему.

Так вот как это работает, я думаю, что некоторые могут найти полезным

первый в отношениях ManyToMany

 @ManyToOne
 @JsonIgnoreProperties("")
 private User coordinador;
         public User getCoordinador() {
            return coordinador;
        }

        public ExtendedUser coordinador(User user) {
            this.coordinador = user;
            return this;
        }

        public void setCoordinador(User user) {
            this.coordinador = user;
        }

А в ДТО

  private Long coordinadorId;

  private String coordinadorLogin;

  public Long getCoordinadorId() {
        return coordinadorId;
    }

    public void setCoordinadorId(Long userId) {
        this.coordinadorId = userId;
    }

    public String getCoordinadorLogin() {
        return coordinadorLogin;
    }

    public void setCoordinadorLogin(String userLogin) {
        this.coordinadorLogin = userLogin;
    }

С угловой стороны это выглядит так: component.html

 <div class="form-group">
                    <label class="form-control-label" jhiTranslate="sigemApp.extendedUser.coordinador" for="field_coordinador">Coordinador</label>
                    <select class="form-control" id="field_coordinador" name="coordinador" [(ngModel)]="extendedUser.coordinadorLogin" >
                        <option [ngValue]="null"></option>
                        <option [ngValue]="userOption.login" *ngFor="let userOption of users; trackBy: trackUserById">{{userOption.login}}</option>
    </select></div>

Наконец, в component.ts

users: IUser[];
 this.userService.query().subscribe(
            (res: HttpResponse<IUser[]>) => {
                this.users = res.body;
            },
            (res: HttpErrorResponse) => this.onError(res.message)
        );
 trackUserById(index: number, item: IUser) {
        return item.login;
    }
getSelected(selectedVals: Array<any>, option: any) {
        if (selectedVals) {
            for (let i = 0; i < selectedVals.length; i++) {
                if (option.id === selectedVals[i].id) {
                    return selectedVals[i];
                }
            }
        }
        return option;
    }

Чтобы сохранить его, я использую userService, чтобы получить объект User пользователя, поэтому в службе User

    Optional<User> coordinador = userRepository.findOneByLogin(extendedUserDTO.getCoordinadorLogin());
  updateExtendedUser.setCoordinador(coordinador.get());
        extendedUserService.save(updateExtendedUser);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...