@@ -991,15 +991,14 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
991991
992992 for ( const [ field , value ] of Object . entries ( selections . select ) ) {
993993 const fieldDef = requireField ( this . schema , model , field ) ;
994- const fieldModel = fieldDef . type ;
994+ const fieldModel = fieldDef . type as GetModels < Schema > ;
995995 let fieldCountQuery : SelectQueryBuilder < any , any , any > ;
996996
997997 // join conditions
998998 const m2m = getManyToManyRelation ( this . schema , model , field ) ;
999999 if ( m2m ) {
10001000 // many-to-many relation, count the join table
1001- fieldCountQuery = eb
1002- . selectFrom ( fieldModel )
1001+ fieldCountQuery = this . buildModelSelect ( fieldModel , fieldModel , value as any , false )
10031002 . innerJoin ( m2m . joinTable , ( join ) =>
10041003 join
10051004 . onRef ( `${ m2m . joinTable } .${ m2m . otherFkName } ` , '=' , `${ fieldModel } .${ m2m . otherPKName } ` )
@@ -1008,7 +1007,9 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
10081007 . select ( eb . fn . countAll ( ) . as ( `_count$${ field } ` ) ) ;
10091008 } else {
10101009 // build a nested query to count the number of records in the relation
1011- fieldCountQuery = eb . selectFrom ( fieldModel ) . select ( eb . fn . countAll ( ) . as ( `_count$${ field } ` ) ) ;
1010+ fieldCountQuery = this . buildModelSelect ( fieldModel , fieldModel , value as any , false ) . select (
1011+ eb . fn . countAll ( ) . as ( `_count$${ field } ` ) ,
1012+ ) ;
10121013
10131014 // join conditions
10141015 const joinPairs = buildJoinPairs ( this . schema , model , parentAlias , field , fieldModel ) ;
@@ -1017,18 +1018,6 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
10171018 }
10181019 }
10191020
1020- // merge _count filter
1021- if (
1022- value &&
1023- typeof value === 'object' &&
1024- 'where' in value &&
1025- value . where &&
1026- typeof value . where === 'object'
1027- ) {
1028- const filter = this . buildFilter ( fieldModel , fieldModel , value . where ) ;
1029- fieldCountQuery = fieldCountQuery . where ( filter ) ;
1030- }
1031-
10321021 jsonObject [ field ] = fieldCountQuery ;
10331022 }
10341023
0 commit comments