Witam,
mamy metodę z adnotacją @PostPersist dla naszego obiektu A, która na kolekcji @OneToMany List<C> wykonuje jakieś zmiany
czy te zmiany będą widoczne w db?
bo wygląda na to, że nie : /
// A
@JsonProperty("lista")
@OneToMany(mappedBy="a", cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
public Collection<C> cc;
@PostPersist
for(C c : this.cc){
c.a = this;
// C
@JsonIgnore
@JoinColumn(name="id_a", nullable = false, insertable=true, updatable = true)
@ManyToOne(cascade = CascadeType.ALL)
public A a;
Może coś robię źle, ale chciałbym uzyskać taki efekt:
- wysyłamy jsona do serwisu (transakcją zarządza kontener) { namea: "testa", lista: [{namec: "testc"}]}
- w serwisie chcemy go utrwalić, niestety dostajemy błąd klucza obcego
Cannot insert the value NULL into column 'id_a', table 'table_c'; column does not allow nulls
przez @PostPersist klasy A próbowałem wskazać obiektowi C nową wartość właściwości a, ale to nie pomaga
pomaga tylko wykonanie kodu od @PostPersist w serwisie przed utrwaleniem (mimo, że to insert i kolumna id_a nie ma wartości)
co z tym można jeszcze zrobić?