Skip to content

Commit af3ae95

Browse files
committed
HHH-10664 - Prep 6.0 feature branch - merge hibernate-entitymanager into hibernate-core (continued fixing of hibernate-core test failures)
1 parent ad78941 commit af3ae95

File tree

10 files changed

+31
-39
lines changed

10 files changed

+31
-39
lines changed

hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryImplementor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,13 @@ public interface SessionFactoryImplementor extends Mapping, SessionFactory, Quer
163163
*/
164164
CurrentTenantIdentifierResolver getCurrentTenantIdentifierResolver();
165165

166-
Iterable<EntityNameResolver> iterateEntityNameResolvers();
166+
/**
167+
* @deprecated (since 5.2) use {@link #getMetamodel()} -> {@link MetamodelImplementor#getEntityNameResolvers()}
168+
*/
169+
@Deprecated
170+
default Iterable<EntityNameResolver> iterateEntityNameResolvers() {
171+
return getMetamodel().getEntityNameResolvers();
172+
}
167173

168174
/**
169175
* Contract for resolving this SessionFactory on deserialization

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public String resolveEntityName(Object entity) {
2929
return entityName;
3030
}
3131

32-
for ( EntityNameResolver resolver : sessionFactory.iterateEntityNameResolvers() ) {
32+
for ( EntityNameResolver resolver : sessionFactory.getMetamodel().getEntityNameResolvers() ) {
3333
entityName = resolver.resolveEntityName( entity );
3434
if ( entityName != null ) {
3535
break;

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

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import java.util.List;
1919
import java.util.Map;
2020
import java.util.Set;
21-
import java.util.concurrent.ConcurrentHashMap;
22-
import java.util.concurrent.ConcurrentMap;
2321
import javax.naming.Reference;
2422
import javax.naming.StringRefAddr;
2523
import javax.persistence.EntityGraph;
@@ -35,7 +33,6 @@
3533
import org.hibernate.ConnectionReleaseMode;
3634
import org.hibernate.CustomEntityDirtinessStrategy;
3735
import org.hibernate.EmptyInterceptor;
38-
import org.hibernate.EntityNameResolver;
3936
import org.hibernate.FlushMode;
4037
import org.hibernate.HibernateException;
4138
import org.hibernate.Interceptor;
@@ -118,7 +115,6 @@
118115
import org.hibernate.stat.spi.StatisticsImplementor;
119116
import org.hibernate.tool.schema.spi.DelayedDropAction;
120117
import org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator;
121-
import org.hibernate.tuple.entity.EntityTuplizer;
122118
import org.hibernate.type.SerializableType;
123119
import org.hibernate.type.Type;
124120
import org.hibernate.type.TypeResolver;
@@ -184,7 +180,6 @@ public final class SessionFactoryImpl implements SessionFactoryImplementor {
184180
private final transient Map<String,IdentifierGenerator> identifierGenerators;
185181
private final transient Map<String, FilterDefinition> filters;
186182
private final transient Map<String, FetchProfile> fetchProfiles;
187-
private final transient ConcurrentMap<EntityNameResolver,Object> entityNameResolvers = new ConcurrentHashMap<>();
188183

189184
private final transient TypeResolver typeResolver;
190185
private final transient TypeHelper typeHelper;
@@ -498,35 +493,6 @@ public TypeResolver getTypeResolver() {
498493
return typeResolver;
499494
}
500495

501-
private void registerEntityNameResolvers(EntityPersister persister) {
502-
if ( persister.getEntityMetamodel() == null || persister.getEntityMetamodel().getTuplizer() == null ) {
503-
return;
504-
}
505-
registerEntityNameResolvers( persister.getEntityMetamodel().getTuplizer() );
506-
}
507-
508-
private void registerEntityNameResolvers(EntityTuplizer tuplizer) {
509-
EntityNameResolver[] resolvers = tuplizer.getEntityNameResolvers();
510-
if ( resolvers == null ) {
511-
return;
512-
}
513-
514-
for ( EntityNameResolver resolver : resolvers ) {
515-
registerEntityNameResolver( resolver );
516-
}
517-
}
518-
519-
private static final Object ENTITY_NAME_RESOLVER_MAP_VALUE = new Object();
520-
521-
public void registerEntityNameResolver(EntityNameResolver resolver) {
522-
entityNameResolvers.put( resolver, ENTITY_NAME_RESOLVER_MAP_VALUE );
523-
}
524-
525-
@Override
526-
public Iterable<EntityNameResolver> iterateEntityNameResolvers() {
527-
return entityNameResolvers.keySet();
528-
}
529-
530496
public QueryPlanCache getQueryPlanCache() {
531497
return queryPlanCache;
532498
}

hibernate-core/src/main/java/org/hibernate/metamodel/internal/MetamodelImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ public MetadataImplementor getMetadata() {
209209
this.jpaEntityTypesByEntityName.putAll( context.getEntityTypesByEntityName() );
210210
}
211211

212+
@Override
212213
public java.util.Collection<EntityNameResolver> getEntityNameResolvers() {
213214
return entityNameResolvers.keySet();
214215
}

hibernate-core/src/main/java/org/hibernate/metamodel/spi/MetamodelImplementor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
*/
77
package org.hibernate.metamodel.spi;
88

9+
import java.util.Collection;
910
import java.util.Map;
1011
import java.util.Set;
1112

13+
import org.hibernate.EntityNameResolver;
1214
import org.hibernate.MappingException;
1315
import org.hibernate.Metamodel;
1416
import org.hibernate.engine.spi.SessionFactoryImplementor;
@@ -22,6 +24,8 @@ public interface MetamodelImplementor extends Metamodel {
2224
@Override
2325
SessionFactoryImplementor getSessionFactory();
2426

27+
Collection<EntityNameResolver> getEntityNameResolvers();
28+
2529
/**
2630
* Locate an EntityPersister by the entity class. The passed Class might refer to either
2731
* the entity name directly, or it might name a proxy interface for the entity. This

hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
public class QueryParameterBindingImpl<T> implements QueryParameterBinding<T> {
1919
private final QueryParameterBindingTypeResolver typeResolver;
2020

21+
private boolean isBound;
22+
2123
private Type bindType;
2224
private T bindValue;
2325

@@ -26,6 +28,11 @@ public QueryParameterBindingImpl(Type type, QueryParameterBindingTypeResolver ty
2628
this.typeResolver = typeResolver;
2729
}
2830

31+
@Override
32+
public boolean isBound() {
33+
return isBound;
34+
}
35+
2936
@Override
3037
public T getBindValue() {
3138
return bindValue;
@@ -38,6 +45,7 @@ public Type getBindType() {
3845

3946
@Override
4047
public void setBindValue(T value) {
48+
this.isBound = true;
4149
this.bindValue = value;
4250

4351
if ( bindType == null ) {

hibernate-core/src/main/java/org/hibernate/query/internal/QueryParameterBindingsImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,8 @@ public QueryParameterBinding getBinding(int position) {
194194

195195
public void verifyParametersBound(boolean reserveFirstParameter) {
196196
for ( Map.Entry<QueryParameter, QueryParameterBinding> bindEntry : parameterBindingMap.entrySet() ) {
197-
if ( bindEntry.getValue().getBindValue() == null ) {
198-
if ( bindEntry.getKey().getName() == null ) {
197+
if ( !bindEntry.getValue().isBound() ) {
198+
if ( bindEntry.getKey().getName() != null ) {
199199
throw new QueryException( "Named parameter [" + bindEntry.getKey().getName() + "] not set" );
200200
}
201201
else if ( bindEntry.getKey().getPosition() != null ) {

hibernate-core/src/main/java/org/hibernate/query/procedure/internal/ProcedureParameterBindingImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ public ProcedureParameterBindingImpl(ProcedureParameterImplementor<T> parameter)
2222
this.parameter = parameter;
2323
}
2424

25+
@Override
26+
public boolean isBound() {
27+
return parameter.getNativeParameterRegistration().getBind() != null;
28+
}
29+
2530
@Override
2631
public void setBindValue(T value) {
2732
parameter.getNativeParameterRegistration().bindValue( value );

hibernate-core/src/main/java/org/hibernate/query/spi/QueryParameterBinding.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
@Incubating
2020
public interface QueryParameterBinding<T> {
21+
boolean isBound();
22+
2123
/**
2224
* Sets the parameter binding value. The inherent parameter type (if known) is assumed
2325
*

hibernate-core/src/main/java/org/hibernate/type/AnyType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ private EntityPersister guessEntityPersister(Object object) {
178178
}
179179

180180
if ( entityName == null ) {
181-
for ( EntityNameResolver resolver : scope.resolveFactory().iterateEntityNameResolvers() ) {
181+
for ( EntityNameResolver resolver : scope.resolveFactory().getMetamodel().getEntityNameResolvers() ) {
182182
entityName = resolver.resolveEntityName( entity );
183183
if ( entityName != null ) {
184184
break;

0 commit comments

Comments
 (0)