Skip to content

Commit a7919fa

Browse files
committed
don't unnecessarily convert enums to strings
1 parent 2506dd1 commit a7919fa

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

hibernate-core/src/main/java/org/hibernate/boot/internal/SessionFactoryOptionsBuilder.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
import static org.hibernate.internal.util.config.ConfigurationHelper.getInteger;
111111
import static org.hibernate.internal.util.config.ConfigurationHelper.getString;
112112
import static org.hibernate.jpa.internal.util.CacheModeHelper.interpretCacheMode;
113+
import static org.hibernate.jpa.internal.util.ConfigurationHelper.getFlushMode;
113114
import static org.hibernate.type.format.jackson.JacksonIntegration.getJsonJacksonFormatMapperOrNull;
114115
import static org.hibernate.type.format.jackson.JacksonIntegration.getXMLJacksonFormatMapperOrNull;
115116
import static org.hibernate.type.format.jakartajson.JakartaJsonIntegration.getJakartaJsonBFormatMapperOrNull;
@@ -1620,9 +1621,8 @@ public LockOptions getDefaultLockOptions() {
16201621
return defaultLockOptions;
16211622
}
16221623

1623-
private static FlushMode defaultFlushMode(Map<String, Object> defaultSessionProperties) {
1624-
final Object setMode = defaultSessionProperties.get( HibernateHints.HINT_FLUSH_MODE );
1625-
return org.hibernate.jpa.internal.util.ConfigurationHelper.getFlushMode( setMode, FlushMode.AUTO );
1624+
private static FlushMode defaultFlushMode(Map<String, Object> properties) {
1625+
return getFlushMode( properties.get( HibernateHints.HINT_FLUSH_MODE ), FlushMode.AUTO );
16261626
}
16271627

16281628
private static LockOptions defaultLockOptions(Map<String, Object> defaultSessionProperties) {
@@ -1640,9 +1640,9 @@ private Map<String, Object> initializeDefaultSessionProperties(ConfigurationServ
16401640
final HashMap<String,Object> settings = new HashMap<>();
16411641

16421642
//Static defaults:
1643-
settings.putIfAbsent( HibernateHints.HINT_FLUSH_MODE, FlushMode.AUTO.name() );
1644-
settings.putIfAbsent( JPA_LOCK_SCOPE, PessimisticLockScope.EXTENDED.name() );
1645-
settings.putIfAbsent( JAKARTA_LOCK_SCOPE, PessimisticLockScope.EXTENDED.name() );
1643+
settings.putIfAbsent( HibernateHints.HINT_FLUSH_MODE, FlushMode.AUTO );
1644+
settings.putIfAbsent( JPA_LOCK_SCOPE, PessimisticLockScope.EXTENDED );
1645+
settings.putIfAbsent( JAKARTA_LOCK_SCOPE, PessimisticLockScope.EXTENDED );
16461646
settings.putIfAbsent( JPA_LOCK_TIMEOUT, LockOptions.WAIT_FOREVER );
16471647
settings.putIfAbsent( JAKARTA_LOCK_TIMEOUT, LockOptions.WAIT_FOREVER );
16481648
settings.putIfAbsent( JPA_SHARED_CACHE_RETRIEVE_MODE, CacheModeHelper.DEFAULT_RETRIEVE_MODE );

hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,10 +332,14 @@ private Integer getHintedLockTimeout() {
332332

333333
private Object getSessionProperty(String propertyName) {
334334
return properties == null
335-
? getSessionFactoryOptions().getDefaultSessionProperties().get( propertyName )
335+
? getDefaultProperties().get( propertyName )
336336
: properties.get( propertyName );
337337
}
338338

339+
private Map<String, Object> getDefaultProperties() {
340+
return getSessionFactoryOptions().getDefaultSessionProperties();
341+
}
342+
339343
@Override
340344
public SharedSessionBuilder sessionWithOptions() {
341345
return new SharedSessionBuilderImpl( this );
@@ -2810,7 +2814,7 @@ public void setProperty(String propertyName, Object value) {
28102814

28112815
// store property for future reference:
28122816
if ( properties == null ) {
2813-
properties = computeCurrentSessionProperties();
2817+
properties = computeCurrentProperties();
28142818
}
28152819
properties.put( propertyName, value );
28162820

@@ -2878,18 +2882,18 @@ private void interpretProperty(String propertyName, Object value) {
28782882
}
28792883
}
28802884

2881-
private Map<String, Object> computeCurrentSessionProperties() {
2882-
final Map<String, Object> map = new HashMap<>( getSessionFactoryOptions().getDefaultSessionProperties() );
2885+
private Map<String, Object> computeCurrentProperties() {
2886+
final var map = new HashMap<>( getDefaultProperties() );
28832887
//The FLUSH_MODE is always set at Session creation time,
28842888
//so it needs special treatment to not eagerly initialize this Map:
2885-
map.put( HINT_FLUSH_MODE, getHibernateFlushMode().name() );
2889+
map.put( HINT_FLUSH_MODE, getHibernateFlushMode() );
28862890
return map;
28872891
}
28882892

28892893
@Override
28902894
public Map<String, Object> getProperties() {
28912895
if ( properties == null ) {
2892-
properties = computeCurrentSessionProperties();
2896+
properties = computeCurrentProperties();
28932897
}
28942898
return unmodifiableMap( properties );
28952899
}

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/EntityManagerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ public void testSetProperty() throws Exception {
344344
em.getTransaction().commit();
345345

346346
em.clear();
347-
assertEquals( em.getProperties().get(HibernateHints.HINT_FLUSH_MODE), "AUTO" );
347+
assertEquals( em.getProperties().get(HibernateHints.HINT_FLUSH_MODE), FlushMode.AUTO );
348348
assertNotNull(
349349
"With default settings the entity should be persisted on commit.",
350350
em.find( Wallet.class, wallet.getSerial() )

0 commit comments

Comments
 (0)