From 89b1c533d1b48b8b339b9c74a59c2ce73e6431af Mon Sep 17 00:00:00 2001
From: Joaquín Reñé <jrene@curisit.net>
Date: Tue, 27 May 2025 10:27:57 +0000
Subject: [PATCH] #4399 - Fix JPA and Serialization for new JPA versions (new eclipse envs)

---
 securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java b/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java
index 100b5c4..19879f2 100644
--- a/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java
+++ b/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java
@@ -7,7 +7,7 @@
 import java.sql.Types;
 
 import org.hibernate.HibernateException;
-import org.hibernate.engine.spi.SessionImplementor;
+import org.hibernate.engine.spi.SharedSessionContractImplementor;
 import org.hibernate.usertype.UserType;
 
 public abstract class PersistentEnumUserType<T extends CodedEnum> implements UserType {
@@ -58,7 +58,8 @@
     }
 
     @Override
-    public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) throws HibernateException, SQLException {
+    public Object nullSafeGet(ResultSet rs, String[] names, SharedSessionContractImplementor session, Object owner)
+            throws HibernateException, SQLException {
         String code = rs.getString(names[0]);
         for (CodedEnum en : returnedClass().getEnumConstants()) {
             if (en.getCode().equals(code)) {
@@ -69,8 +70,13 @@
     }
 
     @Override
-    public void nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor session) throws HibernateException, SQLException {
-        st.setString(index, value == null ? null : ((CodedEnum) value).getCode());
+    public void nullSafeSet(PreparedStatement st, Object value, int index, SharedSessionContractImplementor session)
+            throws HibernateException, SQLException {
+        if (value == null) {
+            st.setNull(index, java.sql.Types.VARCHAR);
+        } else {
+            st.setString(index, ((CodedEnum) value).getCode());
+        }
     }
 
 }

--
Gitblit v1.3.2