UCanAccess and EclipseLink Persistence Framework #38
Replies: 3 comments 1 reply
|
Thanks for the detailed report. Here's my best guess at what's going on. The most suspicious part of your configuration is: <property name="eclipselink.target-database" value="HSQL"/>UCanAccess is not a plain HSQLDB connection — it uses HSQLDB internally as an in-memory mirror, but exposes its own JDBC layer on top. The fact that removing Two things worth trying:
Let us know whether either of these makes a difference.
|
|
I recently added the target-database property because of a warning from EclipseLink, and some people suggested pointing it to HSQL. It actually behaves the same with or without it. To cut a long story short, I have just confirmed that this is an issue with UCanAccess. If you don't mind, I can open an issue to share the details. |
|
Confirmed to be an issue related to Date/Time precision handling between UCanAccess and Jackcess that leads to a 'quiet fail' during updates because the truncated value in the database no longer matches the high-precision value in the persistence context. Tracking the fix in #39. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I am not sure who else would use EclipseLink with MS Access. But the following issue seems really odd with such a simple scenario:
1. insert a record
2. update it
3. update it again
The second update fails quietly. The following is the example code.
Here is the persistence.xml
The phone is still '555-9975' after the program ends. The last update was lost. Otherwise, it would be '555-9985'.
If you query the table before the program exits, it returns '555-9985' correctly. So, the last update stayed in memory only.
One thing worth noting is that 'Update_time' is a Date/Time column. Without it, everything works fine.
Same result on a few different versions of EclipseLink. The latest version used was 4.0.8. It behaves the same with UcanAccess 5.0.x and 5.1.x
All reactions