首页 > 解决方案 > JPA EclipseLink - 更新实体关系

问题描述

我有一个 JavaFX 应用程序,它使用 eclipselink JPA 提供程序来访问本地 H2 数据库。我在插入或删除对象时遇到了一些奇怪的行为,也许这是我还没有理解的基本机制。我使用此方法删除由拥有实体引用的实体:

public static void delete(Object entry) {
        em.getTransaction().begin();
        em.remove(entry);
        em.getTransaction().commit();          
    }

在此之后,我尝试通过从数据库中检索所有实体来更新整个视图:

    @SuppressWarnings("unchecked")
public static <T> List<T> getAll(Class<?> c) {      
    var entries = getAllQuery(c).getResultList();       
    return entries;
}

但似乎我只得到旧的数据库状态,新插入或删除的实体不在其中。解决此问题的最佳方法是什么?我应该在更新视图之前手动从拥有实体中删除子实体吗?

标签: javajpaeclipselinkh2

解决方案


推荐阅读