MyEclipse6Java开发中文教程 transaction begin( Father father= manager. find( Father. class, 1), ∥更新原始数据类型 father setName( "newName") ∥更新对象引用 Son newSon new Son( father. set Son( newSon ∥提交事务,刚才的更新同步到数据库 transaction commit( ∥删除Enty 对Enty的删除必须在事务内完成。 transaction begin( Father father= manager. find( Father. class, 1); ∥如果 atherton@ One toone的 cascade= Cascade Type. ALL,在删除 ather时 候,也会把son删除 ∥把 cascade属性设为 cascade= Cascade Type. REMOVE有同样的效果 manager. remove( father ∥提交事务,刚才的更新同步到数据库 transaction commit B离合 Detach/Merge) ∥ Entity能离 Entity Manager,避免长时间保持 EntityManager打开占用资源和可以在 不同的JWM之传递 Entity Entity Manager entity Manager= emf. createEntity Manager Father father manager find( Father. class, 1); 当 entity Manger关闭的时候,当前被 entityManager管理的Entt都会自动的胧离 EntityManager,状态转变为 detached entity Manager. closed ∥脱离 Entity Manager后,我们仍然可以修改 Father的属性 ather setName( "newName"), ∥在稍后的,我们可以将向her重新附和到一个新的或者原来的 EntityManager中 Entity Manager newEntity Manager= emf. createEntity Manager(; ∥附合( merge)需要在事务中进行 newEntityManager getTransaction( begin( newEntity Manager. merge( father) newEntity Manager. get Transaction( commit 刘长炯著MyEclipse 6 Java 开发中文教程 17 刘长炯著 transaction.begin(); Father father = manager.find( Father.class, 1 ); // 更新原始数据类型 father.setName( "newName" ); // 更新对象引用 Son newSon = new Son(); father.setSon( newSon ); // 提交事务,刚才的更新同步到数据库 transaction.commit(); // 删除 Entity 对 Entity 的删除必须在事务内完成。 transaction.begin(); Father father = manager.find( Father.class, 1 ); // 如果 father/son 的@OneToOne 的 cascade=CascadeType.ALL,在删除 father 时 候,也会把 son 删除。 // 把 cascade 属性设为 cascade=CascadeType.REMOVE 有同样的效果。 manager.remove( father ); // 提交事务,刚才的更新同步到数据库 transaction.commit(); //脱离/附合(Detach/Merge) // Entity 能脱离 EntityManager,避免长时间保持 EntityManager 打开占用资源和可以在 不同的 JVM 之间传递 Entity EntityManager entityManager = emf.createEntityManager(); Father father = manager.find( Father.class, 1 ); // 当 entityManger 关闭的时候,当前被 entityManager 管理的 Entity 都会自动的脱离 EntityManager,状态转变为 detached entityManager.close(); // 脱离 EntityManager 后,我们仍然可以修改 Father 的属性 father.setName( "newName" ); // 在稍后的,我们可以将 father 重新附和到一个新的或者原来的 EntityManager 中 EntityManager newEntityManager = emf.createEntityManager(); // 附合( merge )需要在事务中进行 newEntityManager.getTransaction().begin(); newEntityManager.merge( father ); newEntityManager.getTransaction().commit();