В нашем проекте мы используем JPA с реализацией Hibernate. Вот наши классы сущностей:
@Entity
@Table(name = "t_apples")
public class Apple {
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "tree_id", nullable = false)
private Tree tree;
@Column(name = "color")
private int color;
//...
}
@Entity
@Table(name = "t_trees")
public class Tree {
@Id
@Column(name = "tree_id")
private Long id;
@Column(name = "height")
private int height()
@Transient
private Set<Apples> apples;
//...
}
Допустим, у нас есть следующая функция.
void createTree() {
EntityTransaction transaction = manager.getTransaction();
transaction.begin();
Tree tree = new Tree();
tree.setHeight(10);
entityManager.persist(tree);
entityManager.flush();
for (int i = 0; i < 5; i++) {
Apple apple = new Apple(COLORS[i]);
apple.setTree(tree);
entityManager.persist(apple);
}
transaction.commit();
}
Вопрос: действительно ли нам нужно использовать flush () * 1008? * метод здесь? Почему или почему нет? Я не мог найти ничего об этом в документации.