@Entity
public class Troop {
@OneToMany(mappedBy="troop")
public Set<Soldier> getSoldiers() {
...
}
@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name="troop_fk")
public Troop getTroop() {
...
}
我做这样的事情:
Troup t = new Troup();
t.getSoldiers().add(soldier);
这也节省了部队和士兵。由于士兵是所有者,因此还添加了外键。但是哪一种是更好的方法,我的意思是使用以下方法来挽救士兵或士兵:
Troop t = ..... // Get troop from session
Soldier s = new Soldier();
s.setTroop(t);
最佳答案
两种方法都可以达到相同的结果。但是,我认为保存单个Soldier
实体效率更高:
Soldier
表得到更新。 但是,也许您应该考虑哪种业务概念更合适,这意味着您现在是在应用程序中使用单独的
Soldiers
还是使用Troops
。Soldier
添加到Troop
或Troop
分配给Soldier
两者之间的差异可能很小,但是根据您的业务情况,可能是一种更易读和易理解的解决方案。