Wpis z mikrobloga

Mirkasy,
jakie jest prawidłowe podejście do zapisu encji w Spring Data.

final User user = UserMapper.mapFrom(UserDto);
final savedUser = userRepository.save(user);
savedUser.getAddresses().forEach(address -> address.setUser(savedUser));

czy

User user = UserMapper.mapFrom(UserDto);
user = userRepository.save(user);
// klasyczna petla for do ustawienia referencji do relacji

Problemem jest to, że w drugim podejściu nie da się zrobić forEach na user bo nie jest finalny.

#spring #springboot #java #springdata #hibernate
  • 6
  • Odpowiedz
@Kuriozal: Jak się sama ustawia skoro w mapperze nie ustawiam tej referencji recznie?
Relacja wyglada tak:

class User{
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST, mappedBy = "user")
private List addresses;
}

class Address{
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private User user;
}
  • Odpowiedz