java – 刷新JPA中的实体
发布时间:2020-12-15 02:29:24 所属栏目:Java 来源:网络整理
导读:我对如何刷新数据库中已有的实体状态感到困惑.更具体一点,假设我有“实体”持有这样的代码: EntityManager em = emf.createEntityManager();em.getTransaction().begin();em.persist(entity);em.getTransaction().commit();entityManager.close(); 由于我关
我对如何刷新数据库中已有的实体状态感到困惑.更具体一点,假设我有“实体”持有这样的代码:
EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.persist(entity); em.getTransaction().commit(); entityManager.close(); 由于我关闭了EntityManager,我的实体实例被分离了.现在假设我有使用此实体实例的其他对象.如果我想从数据库中获取此实体的新状态,我几乎不能使用em.refresh()因为实体是分离的. em.merge()方法返回一个托管实例,因为它不是我对象的同一个实例,这可能是个问题.我可以预见两种解决方案: >在我的实体对象中创建一个新方法,使用给定的实体实例更新其状态. 那么,在这种情况下我应该做些什么呢?如何在不丢失其他对象的所有引用的情况下刷新实体对象的状态?想法? 解决方法
如果实体A引用分离的实体B,则合并B返回B’,并刷新B’.如果合并A,A将其B的引用更改为B’.
A ---> B --(merge)--->B' (refresh) / merge A -----------/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java定时器timer的使用方法代码示例
- Java上传文件图片到服务器的方法
- 如何在Java中将XML转换为JSON并避免解析器尝试将String解析
- java – 使用HttpURLConnection下载html时的奇怪行为
- java获取服务器一些信息方法集合(访问路径之类的)
- java – 不能使用getDeclaredFields()来检索Scala类的字段
- java – 为什么j.u.c.CopyOnWriteArrayList在方法中创建局部
- java-ee – Glassfish中的JNDI配置/查找
- java – Glassfish Security – jdbcRealm:如何使用SHA-25
- java安全相关知识