UCanAccess 和 JPA 上下文中的 java.lang.***Error

Posted

技术标签:

【中文标题】UCanAccess 和 JPA 上下文中的 java.lang.***Error【英文标题】:java.lang.***Error in context with UCanAccess and JPA 【发布时间】:2014-07-13 18:52:38 【问题描述】:

当我尝试执行 JPA 查询时,UCanAccess 驱动程序以 java.lang.***Error 退出。

这个使用过的调用尽可能简单。对于另一个表,此数据库请求可以正常工作。

final Tbltitel entity = (Tbltitel) entityManager.createNamedQuery("Tbltitel.findById")
   .setParameter("id", new Integer(14199)).getSingleResult();

使用普通 JDBC 的调用和通过 Jackcess 对该表的调用也可以正常工作,所以我猜,UCanAccess Driver in Context with JPA 出了点问题。

包含数据库和 JUnit 测试的完整 Eclipse 项目可以在“https://app.box.com/s/mun1se9y7gji24kg6xrx”下载

我的设置: Windows 7 专业版 64 位 微软办公软件 2013 NetBeans IDE 8.0 Java 1.8 UCanAccess-2.0.7-bin

【问题讨论】:

Okey Martin,我刚刚发布了 2.0.7.1,但我想在此之前对此进行调查... 对表 TBLTITEL 的查询和以下为加载引用而执行的查询(大约 7 个)都由 UCanAccess 执行,没有问题。问题似乎出在 jdbc 调用 UCanAccess 之后,而 EclipseLink 正在从结果集映射到对象。所以它似乎与 UCanAccess 无关。 【参考方案1】:

正如我所说,这个问题似乎与 EclipseLink 而不是 UCanAccess 有关。 在自动引用的类 Tbllistofvalues 上设置注释 @Cacheable(false) 应该可以解决问题。

【讨论】:

以上是关于UCanAccess 和 JPA 上下文中的 java.lang.***Error的主要内容,如果未能解决你的问题,请参考以下文章

第二个 Ucanaccess 事务并不总是被推送到 MDB

通过 UCanAccess 在 Eclipse 中“从表中生成实体”(MS Access)

Spring Boot / Data 通过 jdbc UCanAccess 连接到 MS Access

JPA的理解

JPA 中的哪些操作绕过持久性上下文/缓存并直接在数据库中调用?

外键作为主键或仅将代理主键与 JPA 上下文中的外键不同