@@ -193,32 +193,31 @@ public SchemaTransformer createSchemaTransformer(TypeDefinitionRegistry registry
193193	private  void  checkEntityMappings (TypeDefinitionRegistry  registry ) {
194194		List <String > unmappedEntities  = new  ArrayList <>();
195195		for  (TypeDefinition <?> type  : registry .types ().values ()) {
196- 			if  (isEntityMappingExpected (type ) && !this .handlerMethods .containsKey (type .getName ())) {
197- 				unmappedEntities .add (type .getName ());
198- 			}
196+ 			type .getDirectives ().forEach ((directive ) -> {
197+ 				if  (isResolvableKeyDirective (directive ) && !this .handlerMethods .containsKey (type .getName ())) {
198+ 					unmappedEntities .add (type .getName ());
199+ 				}
200+ 			});
199201		}
200202		if  (!unmappedEntities .isEmpty ()) {
201203			throw  new  IllegalStateException ("Unmapped entity types: "  +
202204					unmappedEntities .stream ().collect (Collectors .joining ("', '" , "'" , "'" )));
203205		}
204206	}
205207
206- 	/** 
207- 	 * Determine if a handler method is expected for this type: there is at least one '@key' directive 
208- 	 * whose 'resolvable' argument resolves to true (either explicitly, or if the argument is not set). 
209- 	 * @param type the type to inspect. 
210- 	 * @return true if a handler method is expected for this type 
211- 	 */ 
212- 	private  boolean  isEntityMappingExpected (TypeDefinition <?> type ) {
213- 		List <Directive > keyDirectives  = type .getDirectives ("key" );
214- 		return  !keyDirectives .isEmpty () && keyDirectives .stream ()
215- 			.anyMatch ((keyDirective ) -> {
216- 				Argument  resolvableArg  = keyDirective .getArgument ("resolvable" );
217- 				return  resolvableArg  == null  ||
218- 					(resolvableArg .getValue () instanceof  BooleanValue ) && ((BooleanValue ) resolvableArg .getValue ()).isValue ();
219- 			});
208+ 	private  boolean  isResolvableKeyDirective (Directive  directive ) {
209+ 		if  (!directive .getName ().equalsIgnoreCase ("key" )) {
210+ 			return  false ;
211+ 		}
212+ 		Argument  argument  = directive .getArgument ("resolvable" );
213+ 		if  (argument  != null ) {
214+ 			Object  value  = argument .getValue ();
215+ 			return  (value  instanceof  BooleanValue  bv  && bv .isValue ());
216+ 		}
217+ 		return  true ;
220218	}
221219
220+ 
222221	public  record  EntityMappingInfo (String  typeName , HandlerMethod  handlerMethod ) {
223222
224223		public  boolean  isBatchHandlerMethod () {
0 commit comments