@@ -134,33 +134,61 @@ public JpaCompliance getJpaCompliance() {
134134 }
135135
136136 @ Override
137- public <X > ManagedDomainType <X > managedType ( String typeName ) {
137+ public @ Nullable <X > ManagedDomainType <X > findManagedType ( @ Nullable String typeName ) {
138138 //noinspection unchecked
139139 return typeName == null ? null : (ManagedDomainType <X >) managedTypeByName .get ( typeName );
140140 }
141141
142142 @ Override
143- public EntityDomainType <?> entity (String entityName ) {
143+ public <X > ManagedDomainType <X > managedType (String typeName ) {
144+ final ManagedDomainType <X > managedType = findManagedType ( typeName );
145+ if ( managedType == null ) {
146+ throw new IllegalArgumentException ("Not a managed type: " + typeName );
147+ }
148+ return managedType ;
149+ }
150+
151+ @ Override
152+ @ Nullable public EntityDomainType <?> findEntityType (@ Nullable String entityName ) {
144153 if ( entityName == null ) {
145154 return null ;
146155 }
147156 final ManagedDomainType <?> managedType = managedTypeByName .get ( entityName );
148- if ( !( managedType instanceof EntityDomainType <?> ) ) {
157+ if ( !( managedType instanceof EntityDomainType <?> entityDomainType ) ) {
149158 return null ;
150159 }
151- return ( EntityDomainType <?>) managedType ;
160+ return entityDomainType ;
152161 }
153162
154163 @ Override
155- public EmbeddableDomainType <?> embeddable (String embeddableName ) {
164+ public EntityDomainType <?> entity (String entityName ) {
165+ final EntityDomainType <?> entityType = findEntityType ( entityName );
166+ if ( entityType == null ) {
167+ // per JPA
168+ throw new IllegalArgumentException ("Not an entity: " + entityName );
169+ }
170+ return entityType ;
171+ }
172+
173+ @ Override
174+ @ Nullable public EmbeddableDomainType <?> findEmbeddableType (@ Nullable String embeddableName ) {
156175 if ( embeddableName == null ) {
157176 return null ;
158177 }
159178 final ManagedDomainType <?> managedType = managedTypeByName .get ( embeddableName );
160- if ( !( managedType instanceof EmbeddableDomainType <?> ) ) {
179+ if ( !( managedType instanceof EmbeddableDomainType <?> embeddableDomainType ) ) {
161180 return null ;
162181 }
163- return (EmbeddableDomainType <?>) managedType ;
182+ return embeddableDomainType ;
183+ }
184+
185+ @ Override
186+ public EmbeddableDomainType <?> embeddable (String embeddableName ) {
187+ final EmbeddableDomainType <?> embeddableType = findEmbeddableType ( embeddableName );
188+ if ( embeddableType == null ) {
189+ throw new IllegalArgumentException ("Not an embeddable: " + embeddableName );
190+ }
191+ return embeddableType ;
164192 }
165193
166194 @ Override
@@ -172,7 +200,7 @@ public <X> EntityDomainType<X> getHqlEntityReference(String entityName) {
172200 entityName = importInfo .importedName ;
173201 }
174202
175- final EntityDomainType <?> entityDescriptor = entity ( entityName );
203+ final EntityDomainType <?> entityDescriptor = findEntityType ( entityName );
176204 if ( entityDescriptor != null ) {
177205 //noinspection unchecked
178206 return (EntityDomainType <X >) entityDescriptor ;
@@ -201,13 +229,23 @@ public <X> EntityDomainType<X> resolveHqlEntityReference(String entityName) {
201229 }
202230
203231 @ Override
204- public <X > ManagedDomainType <X > findManagedType (Class <X > cls ) {
232+ @ Nullable public <X > ManagedDomainType <X > findManagedType (Class <X > cls ) {
205233 //noinspection unchecked
206234 return (ManagedDomainType <X >) managedTypeByClass .get ( cls );
207235 }
208236
209237 @ Override
210- public <X > EntityDomainType <X > findEntityType (Class <X > cls ) {
238+ public <X > ManagedDomainType <X > managedType (Class <X > cls ) {
239+ final ManagedDomainType <X > type = findManagedType ( cls );
240+ if ( type == null ) {
241+ // per JPA
242+ throw new IllegalArgumentException ( "Not a managed type: " + cls );
243+ }
244+ return type ;
245+ }
246+
247+ @ Override
248+ @ Nullable public <X > EntityDomainType <X > findEntityType (Class <X > cls ) {
211249 final ManagedType <?> type = managedTypeByClass .get ( cls );
212250 if ( !( type instanceof EntityDomainType <?> ) ) {
213251 return null ;
@@ -217,35 +255,31 @@ public <X> EntityDomainType<X> findEntityType(Class<X> cls) {
217255 }
218256
219257 @ Override
220- public <X > ManagedDomainType <X > managedType (Class <X > cls ) {
221- final ManagedType <?> type = managedTypeByClass .get ( cls );
222- if ( type == null ) {
223- // per JPA
224- throw new IllegalArgumentException ( "Not a managed type: " + cls );
258+ public <X > EntityDomainType <X > entity (Class <X > cls ) {
259+ final EntityDomainType <X > entityType = findEntityType ( cls );
260+ if ( entityType == null ) {
261+ throw new IllegalArgumentException ( "Not an entity: " + cls .getName () );
225262 }
226-
227- //noinspection unchecked
228- return (ManagedDomainType <X >) type ;
263+ return entityType ;
229264 }
230265
231266 @ Override
232- public <X > EntityDomainType <X > entity (Class <X > cls ) {
267+ public @ Nullable <X > EmbeddableDomainType <X > findEmbeddableType (Class <X > cls ) {
233268 final ManagedType <?> type = managedTypeByClass .get ( cls );
234- if ( !( type instanceof EntityDomainType <?> ) ) {
235- throw new IllegalArgumentException ( "Not an entity: " + cls . getName () ) ;
269+ if ( !( type instanceof EmbeddableDomainType <?> ) ) {
270+ return null ;
236271 }
237272 //noinspection unchecked
238- return (EntityDomainType <X >) type ;
273+ return (EmbeddableDomainType <X >) type ;
239274 }
240275
241276 @ Override
242277 public <X > EmbeddableDomainType <X > embeddable (Class <X > cls ) {
243- final ManagedType <?> type = managedTypeByClass . get ( cls );
244- if ( !( type instanceof EmbeddableDomainType <?> ) ) {
278+ final EmbeddableDomainType < X > embeddableType = findEmbeddableType ( cls );
279+ if ( embeddableType == null ) {
245280 throw new IllegalArgumentException ( "Not an embeddable: " + cls .getName () );
246281 }
247- //noinspection unchecked
248- return (EmbeddableDomainType <X >) type ;
282+ return embeddableType ;
249283 }
250284
251285 private Collection <ManagedDomainType <?>> getAllManagedTypes () {
@@ -441,7 +475,7 @@ private void applyNamedEntityGraphs(Collection<NamedEntityGraphDefinition> named
441475 definition .getEntityName (),
442476 definition .getJpaEntityName ()
443477 );
444- final EntityDomainType <?> entityType = entity ( definition .getEntityName () );
478+ final EntityDomainType <?> entityType = findEntityType ( definition .getEntityName () );
445479 if ( entityType == null ) {
446480 throw new IllegalArgumentException (
447481 "Attempted to register named entity graph [" + definition .getRegisteredName ()
0 commit comments