Kew*_*ang 10 java hibernate jpa flush entitymanager
因为调用flush()来使每个实体从内存持久存储到数据库.因此,如果我使用调用太多不必要的flush(),则可能需要很长时间,因此不是性能的好选择.这是一个我不知道何时调用flush()的场景?
//Order and Item have Bidirectional Relationships
Order ord = New ord("my first order");
Item item = New Item("tv",10);
//...process item and ord object
em.persist(ord);//em is an instance of EntityManager
em.flush();// No.1 flush()
item.setOrder(ord);
em.persist(item);
Set<Item> items= new HashSet<Item>();
items.add(item);
ord.setItems(items);
em.flush();// No.2 flush()
Run Code Online (Sandbox Code Playgroud)
我的问题是:拨打第1号同花顺是否可以避免?
我担心的是:为了执行item.setOrder(ord),我们需要一个ord的数据库ID.并且只调用em.persist(ord)无法生成数据库ID,因此我必须在item.setOrder(ord)之前调用em.flush().那么你们的观点是什么?
提前致谢.
我应该首先构建结构,然后保留一切。
Order ord = New ord("my first order");
Item item = New Item("tv",10);
item.setOrder(ord);
Set<Item> items= new HashSet<Item>();
items.add(item);
ord.setItems(items);
em.persist(ord);
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以在一次调用中保留整个树,并且不需要刷新。
在良好的对象设计中,您应该使用 duffymo 描述的方式来连接对象。
归档时间: |
|
查看次数: |
14103 次 |
最近记录: |