JPA EntityManager постоянная сущность и сущности ManyToOne в рамках одной транзакции - PullRequest
1 голос
/ 01 октября 2019

В нашем проекте мы используем 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? * метод здесь? Почему или почему нет? Я не мог найти ничего об этом в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...