@Entity
public class Person implements Serializable{
@Id
@GeneratedValue
private int id;
private String name;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "person")
private List<Car> cars;
//getters and setters
}
@Entity
public class Car implements Serializable{
@Id
@GeneratedValue
private int id;
private String name;
@ManyToOne
@JoinColumn(name = "person_id")
private Person person;
// getters and setters
}
そして..私はそれをこのように使用します..
Person per = new Person();
per.setName("some");
Car car1 = new Car();
car1.setName("Ford");
Car car2 = new Car();
car2.setName("WagonR");
//s.save(car1);
//s.save(car2);
per.setCars(new ArrayList<Car>());
per.getCars().add(car1);
per.getCars().add(car2);
s.save(per);
さて、テーブルCar
には列person_id
がありますが、両方の車に表示null
されています。ここで何が間違っているのでしょうか。テーブルPerson
は正しく入力されています。mappedBy
テーブルから「」を削除し、Person
代わりに@JoinColumn
ここを含めると、正常に機能します。