Opened 29 hours ago
Last modified 9 minutes ago
#2345 new task
Update to Hibernate 6
Reported by: | Nicklas Nordborg | Owned by: | everyone |
---|---|---|---|
Priority: | major | Milestone: | BASE Future Release |
Component: | core | Version: | |
Keywords: | Cc: |
Description
I think we need to do this sooner or later. We are currently using Hibernate 5.6 which is old and only has limited support. It supports up to Java 18 (but I have been running on Java 20 without problem).
In the future we may end up in a situation where a new OS only works with a Java version where Hibernate 5.6 doesn't work.
I have made some initial tests and there are a lot of breaking changes in Hibernate between 5.6 and 6.6 (the current version). It is very unlikely that we can switch without breaking some of our own API and without introducing some incompatible changes. For example:
- XML-based mapping is no longer in the documentation. It is still supported but it would be nice to move over to annotation-based mapping. This will affect our solution with "extended properties" which generates XML mappings on the fly.
- The type-system in Hibernate is in a constant re-factoring state. There seems to be a lot of changes and they are always a bit hard to find replacements.
- Accessing metadata for generic functionality. We are using this in some places (for example for exporting). The API for accessing metadata is also in constant re-factoring state.
- By-passing Hibernate and interacting directly with JDBC. Hibernate is always making it harder to obtain and use the underlying JDBC connection. This may affect some of our batch API:s.
Maybe this is also a good time to start removing some things in BASE that we are no longer using. For example:
- Array LIMS (with some exceptions like Plate geometry)
- Experiments
- Reporters
- Raw bioassays
In 8345: