Обновляемая модель содержит @DBRef [Spring-boot Angular] - PullRequest
0 голосов
/ 29 мая 2020

В проекте весенней загрузки я использую Spring Data MongoDB, и у меня есть classA, содержащий @DBRef. Я не знаю, как я могу обновить его во внешнем интерфейсе. Я попытался обновить его. Все остальные переменные обновлены, кроме classB. бэкэнд его рабочий. Теперь я хочу, чтобы кто-нибудь сообщил мне, как я могу обновить Adresse.

public class User
{
@Id
private String id;

private String email

@DBRef
private Adresse adresse;

User.Controller

@PatchMapping("/update/{id}")
    public ResponseEntity<?> update(@Valid @RequestBody Utilisateur user, @PathVariable("id") String id){

        Optional<Utilisateur> userData = utilisateurRepository.findById(id);
       Utilisateur userToEdit = userData.get();
if(user.getAdresse()!=null){
               Adresse addr = new Adresse(user.getAdresse().getAdresse(), user.getAdresse().getVille(), user.getAdresse().getCode_postal()
                       , user.getAdresse().getRegion(), user.getAdresse().getPays());
               this.adresseRepository.save(addr);
               userToEdit.setAdresse(addr);

user.service

updateProfile(userData: any, id: string ): Observable<any> {
    return this.http.patch( API_URL + 'update/' + id, userData, httpOptions);
  }

component.ts

form: any = {};
  id: string;
  errorMessage = '';
  currentUser: any;

  constructor(private userservice: UserService, private route: ActivatedRoute, private router: Router, private token: TokenStorageService) { }

  ngOnInit() {
    this.currentUser = this.token.getUser();
  }
 onSubmit() {

    this.userservice.updateProfile(this.form, this.currentUser.id).subscribe(
      data => {
        console.log(data);

      },
      err => {
        this.errorMessage = err.error.message;
      }
    );
  }

компонент. html

<div class="form-group">
        <label>Address</label>
        <input type="text" class="form-control" placeholder=""
                name="adresse"
                [(ngModel)]="form.adresse.adresse"
                required
                #adresse="ngModel">

      </div> <!-- form-group end.// -->
<div class="form-group col-md-6">
          <label>City</label>
      <input type="text" class="form-control"
             name="ville"
            [(ngModel)]="form.adresse.ville"
            required
            #ville="ngModel">
    </div> <!-- form-group end.// -->

1 Ответ

0 голосов
/ 13 июля 2020

форма: UserInfo = {adresse {}};

...