java - 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;
}
但似乎我只得到旧的数据库状态,新插入或删除的实体不在其中。解决此问题的最佳方法是什么?我应该在更新视图之前手动从拥有实体中删除子实体吗?
解决方案
推荐阅读
- c - 无法在 arm64(Apple Silicon)上使用 GTK+3 构建 C11 应用程序
- blockchain - ERC721 - tokenURI 中提及的元数据资产的真实性
- mongodb - 从猫鼬聚合管道中的数组数组中获取单个数组
- ruby-on-rails - Rails ActiveStorage/S3 无法在生产环境中工作
- php - GetText 0 复数
- sql - 基于多个条件的 SQL 搜索产品(如果属性='长度'则值>70,如果属性='权重'则值>3)
- hana - 无法通过 Eclipse Neon 插件连接到 SAP HANA Cloud
- python - 为什么我在将新字段附加到数据帧时得到所有 NAN?
- python - 反向传播实现 - 如何在矩阵上应用链式法则
- c# - 获取 Unity3D 中脚本的类型