Mam problem z utrzymaniem pola OneToMany. Są to dwie uproszczone klasy: Używam do wykonania testu.Jpa OneToMany nie uporczywe dziecko
public class User implements Serializable {
...
private String name;
...
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<PhoneNumber> phoneNumbers;
...
}
public class PhoneNumber implements Serializable {
...
private String phoneNumber;
...
@ManyToOne()
private User user;
...
}
Więc chcę to zrobić:
User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);
Ale kiedy utrzymują się użytkownikowi u dziecka PhoneNumber nie jest automatycznie zachowywane. W drodze do O, potrzebuję tylko jednego do wielu kompozycji.
Używam EclipseLink.
Wielkie dzięki wszystkim za podpowiedzi.
To trochę dziwne - taki przykład działa dobrze w moim przypadku (EclipseLink). Na koniec robisz tylko EntityManager # persist (u)? Skąd wiadomo, że wartość nie jest zachowywana - sprawdzana w bazie danych lub w jakiś sposób ankietowana? Czy spróbuj spłukać EntityManager? –