Jpa OneToMany не сохраняется ребенок - PullRequest
6 голосов
/ 27 октября 2011

У меня проблемы с сохранением поля OneToMany. Это два упрощенных класса Я использую, чтобы сделать тест.

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;
...
}

Итак, я хочу сделать это:

User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);

Но когда я сохраняю пользователя, потомок phoneNumber не сохраняется автоматически В общем, мне нужно только сделать композицию один ко многим.

Я использую EclipseLink.

Большое спасибо всем за ваши подсказки.

1 Ответ

2 голосов
/ 27 октября 2011

Вам необходимо установить отношения в обоих направлениях. Добавьте p.setUser(u) к вашему коду:

User u = new User();
PhoneNumber p = new PhoneNumber();
u.setName("Alan");
u.getPhoneNumbers.add(p);
p.setUser(u);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...