Как установить значение для всех объектов OneToMany? - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть объект 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);

Но я не хочу запрашивать все и сохранять их после установки. Есть ли другой способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...