File tree Expand file tree Collapse file tree 3 files changed +45
-6
lines changed
hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta
hibernate6/src/main/java/tools/jackson/datatype/hibernate6
hibernate7/src/main/java/tools/jackson/datatype/hibernate7 Expand file tree Collapse file tree 3 files changed +45
-6
lines changed Original file line number Diff line number Diff line change 11package tools .jackson .datatype .hibernate5 .jakarta ;
22
3- import java .beans .Introspector ;
43import java .lang .reflect .Field ;
54import java .lang .reflect .Method ;
65import java .util .HashMap ;
@@ -289,13 +288,27 @@ static String getIdentifierPropertyName(LazyInitializer init) {
289288 }
290289 String name = idGetter .getName ();
291290 if (name .startsWith ("get" )) {
292- name = Introspector . decapitalize (name .substring (3 ));
291+ name = _decapitalize (name .substring (3 ));
293292 }
294293 return name ;
295294 } catch (IllegalAccessException e ) {
296295 throw new RuntimeException (e );
297296 }
298297 }
298+
299+ // Same as `java.beans.Introspector.decapitalize()`:
300+ private static String _decapitalize (String name ) {
301+ if (name == null || name .length () == 0 ) {
302+ return name ;
303+ }
304+ if (name .length () > 1 && Character .isUpperCase (name .charAt (1 )) &&
305+ Character .isUpperCase (name .charAt (0 ))){
306+ return name ;
307+ }
308+ char [] chars = name .toCharArray ();
309+ chars [0 ] = Character .toLowerCase (chars [0 ]);
310+ return new String (chars );
311+ }
299312 }
300313
301314 /**
Original file line number Diff line number Diff line change 11package tools .jackson .datatype .hibernate6 ;
22
3- import java .beans .Introspector ;
43import java .lang .reflect .Field ;
54import java .lang .reflect .Method ;
65import java .util .HashMap ;
@@ -290,13 +289,27 @@ static String getIdentifierPropertyName(LazyInitializer init) {
290289 }
291290 String name = idGetter .getName ();
292291 if (name .startsWith ("get" )) {
293- name = Introspector . decapitalize (name .substring (3 ));
292+ name = _decapitalize (name .substring (3 ));
294293 }
295294 return name ;
296295 } catch (IllegalAccessException e ) {
297296 throw new RuntimeException (e );
298297 }
299298 }
299+
300+ // Same as `java.beans.Introspector.decapitalize()`:
301+ private static String _decapitalize (String name ) {
302+ if (name == null || name .length () == 0 ) {
303+ return name ;
304+ }
305+ if (name .length () > 1 && Character .isUpperCase (name .charAt (1 )) &&
306+ Character .isUpperCase (name .charAt (0 ))){
307+ return name ;
308+ }
309+ char [] chars = name .toCharArray ();
310+ chars [0 ] = Character .toLowerCase (chars [0 ]);
311+ return new String (chars );
312+ }
300313 }
301314
302315 protected static class ProxySessionReader {
Original file line number Diff line number Diff line change 11package tools .jackson .datatype .hibernate7 ;
22
3- import java .beans .Introspector ;
43import java .lang .reflect .Field ;
54import java .lang .reflect .Method ;
65import java .util .HashMap ;
@@ -280,12 +279,26 @@ static String getIdentifierPropertyName(LazyInitializer init) {
280279 }
281280 String name = idGetter .getName ();
282281 if (name .startsWith ("get" )) {
283- name = Introspector . decapitalize (name .substring (3 ));
282+ name = _decapitalize (name .substring (3 ));
284283 }
285284 return name ;
286285 } catch (IllegalAccessException e ) {
287286 throw new RuntimeException (e );
288287 }
289288 }
289+
290+ // Same as `java.beans.Introspector.decapitalize()`:
291+ private static String _decapitalize (String name ) {
292+ if (name == null || name .length () == 0 ) {
293+ return name ;
294+ }
295+ if (name .length () > 1 && Character .isUpperCase (name .charAt (1 )) &&
296+ Character .isUpperCase (name .charAt (0 ))){
297+ return name ;
298+ }
299+ char [] chars = name .toCharArray ();
300+ chars [0 ] = Character .toLowerCase (chars [0 ]);
301+ return new String (chars );
302+ }
290303 }
291304}
You can’t perform that action at this time.
0 commit comments