Java 为什么需要使用Hibernate单独保存所有OneToMany对象?
考虑一个类,例如:Java 为什么需要使用Hibernate单独保存所有OneToMany对象?,java,hibernate,Java,Hibernate,考虑一个类,例如: class Person { @Column(name = "id") Integer id; @Column(name = "name") String name; @OneToMany(fetch = FetchType.EAGER, mappedBy = "owner") List <Car> cars; } class Car { @Column(name = "name") String name; @Colu
class Person {
@Column(name = "id")
Integer id;
@Column(name = "name")
String name;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "owner")
List <Car> cars;
}
class Car {
@Column(name = "name")
String name;
@Column(name = "plate")
String plate;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id", nullable=false)
Person owner;
}
难道不可能将java对象手动休眠并让它保存所有内容吗?谢谢aviad。这正是我需要的。 作为将来的参考,下面是我使用的代码
class Person {
@Column(name = "id")
Integer id;
@Column(name = "name")
String name;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "owner", orphanRemoval=true)
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
List <Car> cars;
}
class Car {
@Column(name = "name")
String name;
@Column(name = "plate")
String plate;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id", nullable=false)
Person owner;
}
但这会
Transaction tx = session.beginTransaction();
for (Car c : person.getCars()) {
c.setName(c.getName() + " Update test");
}
session.save(person);
tx.commit();
谢谢阿维德。这正是我需要的。 作为将来的参考,下面是我使用的代码
class Person {
@Column(name = "id")
Integer id;
@Column(name = "name")
String name;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "owner", orphanRemoval=true)
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
List <Car> cars;
}
class Car {
@Column(name = "name")
String name;
@Column(name = "plate")
String plate;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="id", nullable=false)
Person owner;
}
但这会
Transaction tx = session.beginTransaction();
for (Car c : person.getCars()) {
c.setName(c.getName() + " Update test");
}
session.save(person);
tx.commit();
是的。阅读有关卡斯卡迪内斯的文章。阅读有关cascadingFirst的信息,保存要映射到此人的车辆的从属列表,然后使用列表引用保存此人!这就像-为了在我们的表中关联外键,它应该已经作为主键存在于另一个表中-这样工作。首先保存要映射到此人的车辆的从属列表,然后使用列表引用保存此人!它类似于-为了在我们的表中关联外键,它应该已经作为主键存在于另一个表中-以这种方式工作。