HHH-8822 ValueHolder fields need to be transient if owned by a
Serializable class Conflicts: hibernate-core/src/main/java/org/hibernate/metamodel/internal/MetadataImpl.java Conflicts: hibernate-core/src/main/java/org/hibernate/engine/spi/TypedValue.java
This commit is contained in:
parent
856721507c
commit
1dcdc445b4
|
@ -47,6 +47,7 @@ public class NaturalIdCacheKey implements Serializable {
|
|||
private final String entityName;
|
||||
private final String tenantId;
|
||||
private final int hashCode;
|
||||
// "transient" is important here -- NaturalIdCacheKey needs to be Serializable
|
||||
private transient ValueHolder<String> toString;
|
||||
|
||||
/**
|
||||
|
|
|
@ -26,6 +26,8 @@ package org.hibernate.internal.util;
|
|||
/**
|
||||
* Represents a "final" value that is initialized either {@link #ValueHolder(Object) up front} or once at some point
|
||||
* {@link #ValueHolder(ValueHolder.DeferredInitializer) after} declaration.
|
||||
*
|
||||
* Note: If a Serializable class has a {@link ValueHolder} property, that property should be declared transient!
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
|
|
|
@ -86,8 +86,8 @@ public class MetadataImpl implements MetadataImplementor, Serializable {
|
|||
private final ServiceRegistry serviceRegistry;
|
||||
private final Options options;
|
||||
|
||||
private final ValueHolder<ClassLoaderService> classLoaderService;
|
||||
private final ValueHolder<PersisterClassResolver> persisterClassResolverService;
|
||||
private final transient ValueHolder<ClassLoaderService> classLoaderService;
|
||||
private final transient ValueHolder<PersisterClassResolver> persisterClassResolverService;
|
||||
|
||||
private TypeResolver typeResolver = new TypeResolver();
|
||||
|
||||
|
|
Loading…
Reference in New Issue