У меня есть две сущности
@Entity
public class Person{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(nullable = false)
@OneToMany(mappedBy = "owner",cascade=CascadeType.ALL)
private List<Number> numbers
//getters and setters
}
@Entity
public class Number{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ManyToOne
@JoinColumn("owner_id")
private Person owner;
//getters and setters
}
Я создаю человека
Person p = new Person()
Number n1 = new Number()
Number n2 = new Number()
n1.setOwner(p)
n2.setOwnet(p)
List<Number> numbers = new ArrayList<>();
numbers.add(n1);
numbers.add(n2);
p.setNumbers(numbers)
send(p);
и отправляю его в виде JSON на мой контроллер
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public void addFramework(@RequestBody List<Person> persons){
System.out.println("=============");
/*for( Persons person: persons){
for(Number n: person.getNumbers()){
n.setOwner(owner);
}
}*/
repository.saveAll(persons);
}
Без комментария кода,Person
и Number
сохраняются в базе данных, однако ссылка на владельца в Number
равна null
.
Нужно ли вручную устанавливать ссылку на владельца в каждом объекте Number контроллера, когдаЯ сделал это, прежде чем отправить его на контроллер?
Спасибо за помощь.