У меня есть объект ClientUser
с полем @OneToMany customField
:
@Entity
@Data
public class ClientUser {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name = "client_user_custom_field",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "field_id", referencedColumnName = "id"))
private Collection<ClientFieldValue> customFields;
}
И объект ClientFieldValue
:
@Entity
@Data
public class ClientFieldValue {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private String value;
}
Как создать ClientFieldValue
для всех существующих ClientUser
? Я знаю, что могу сделать что-то вроде:
final Iterable<ClientUser> clientUsers = userRepository.findAll();
clientUsers.forEach(clientUser ->
clientUser.setCustomFields(Collections.singleton(new ClientFieldValue())));
userRepository.saveAll(clientUsers);
Но я не хочу запрашивать все и сохранять их после установки. Есть ли другой способ сделать это?