class io.ebeaninternal.server.query.CQueryBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.ebeaninternal.server.query.CQueryBuilder
  super_class: java.lang.Object
{
  private final java.lang.String columnAliasPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.config.dbplatform.SqlLimiter sqlLimiter;
    descriptor: Lio/ebean/config/dbplatform/SqlLimiter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.CQueryBuilderRawSql rawSqlHandler;
    descriptor: Lio/ebeaninternal/server/query/CQueryBuilderRawSql;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.persist.Binder binder;
    descriptor: Lio/ebeaninternal/server/persist/Binder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean selectCountWithAlias;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.CQueryHistorySupport historySupport;
    descriptor: Lio/ebeaninternal/server/query/CQueryHistorySupport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.query.CQueryDraftSupport draftSupport;
    descriptor: Lio/ebeaninternal/server/query/CQueryDraftSupport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.config.dbplatform.DatabasePlatform dbPlatform;
    descriptor: Lio/ebean/config/dbplatform/DatabasePlatform;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean selectCountWithColumnAlias;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(io.ebean.config.dbplatform.DatabasePlatform, io.ebeaninternal.server.persist.Binder, io.ebeaninternal.server.query.CQueryHistorySupport, io.ebeaninternal.server.query.CQueryDraftSupport);
    descriptor: (Lio/ebean/config/dbplatform/DatabasePlatform;Lio/ebeaninternal/server/persist/Binder;Lio/ebeaninternal/server/query/CQueryHistorySupport;Lio/ebeaninternal/server/query/CQueryDraftSupport;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebean.config.dbplatform.DatabasePlatform dbPlatform
        start local 2 // io.ebeaninternal.server.persist.Binder binder
        start local 3 // io.ebeaninternal.server.query.CQueryHistorySupport historySupport
        start local 4 // io.ebeaninternal.server.query.CQueryDraftSupport draftSupport
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            aload 1 /* dbPlatform */
            putfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
         2: .line 62
            aload 0 /* this */
            aload 2 /* binder */
            putfield io.ebeaninternal.server.query.CQueryBuilder.binder:Lio/ebeaninternal/server/persist/Binder;
         3: .line 63
            aload 0 /* this */
            aload 4 /* draftSupport */
            putfield io.ebeaninternal.server.query.CQueryBuilder.draftSupport:Lio/ebeaninternal/server/query/CQueryDraftSupport;
         4: .line 64
            aload 0 /* this */
            aload 3 /* historySupport */
            putfield io.ebeaninternal.server.query.CQueryBuilder.historySupport:Lio/ebeaninternal/server/query/CQueryHistorySupport;
         5: .line 65
            aload 0 /* this */
            aload 1 /* dbPlatform */
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.getColumnAliasPrefix:()Ljava/lang/String;
            putfield io.ebeaninternal.server.query.CQueryBuilder.columnAliasPrefix:Ljava/lang/String;
         6: .line 66
            aload 0 /* this */
            aload 1 /* dbPlatform */
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.getSqlLimiter:()Lio/ebean/config/dbplatform/SqlLimiter;
            putfield io.ebeaninternal.server.query.CQueryBuilder.sqlLimiter:Lio/ebean/config/dbplatform/SqlLimiter;
         7: .line 67
            aload 0 /* this */
            new io.ebeaninternal.server.query.CQueryBuilderRawSql
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.sqlLimiter:Lio/ebean/config/dbplatform/SqlLimiter;
            aload 1 /* dbPlatform */
            invokespecial io.ebeaninternal.server.query.CQueryBuilderRawSql.<init>:(Lio/ebean/config/dbplatform/SqlLimiter;Lio/ebean/config/dbplatform/DatabasePlatform;)V
            putfield io.ebeaninternal.server.query.CQueryBuilder.rawSqlHandler:Lio/ebeaninternal/server/query/CQueryBuilderRawSql;
         8: .line 68
            aload 0 /* this */
            aload 1 /* dbPlatform */
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.isSelectCountWithAlias:()Z
            putfield io.ebeaninternal.server.query.CQueryBuilder.selectCountWithAlias:Z
         9: .line 69
            aload 0 /* this */
            aload 1 /* dbPlatform */
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.isSelectCountWithColumnAlias:()Z
            putfield io.ebeaninternal.server.query.CQueryBuilder.selectCountWithColumnAlias:Z
        10: .line 70
            return
        end local 4 // io.ebeaninternal.server.query.CQueryDraftSupport draftSupport
        end local 3 // io.ebeaninternal.server.query.CQueryHistorySupport historySupport
        end local 2 // io.ebeaninternal.server.persist.Binder binder
        end local 1 // io.ebean.config.dbplatform.DatabasePlatform dbPlatform
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   11     1      dbPlatform  Lio/ebean/config/dbplatform/DatabasePlatform;
            0   11     2          binder  Lio/ebeaninternal/server/persist/Binder;
            0   11     3  historySupport  Lio/ebeaninternal/server/query/CQueryHistorySupport;
            0   11     4    draftSupport  Lio/ebeaninternal/server/query/CQueryDraftSupport;
    MethodParameters:
                Name  Flags
      dbPlatform      
      binder          
      historySupport  
      draftSupport    

  static java.lang.String prefixOrderByFields(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String orderBy
         0: .line 77
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 78
            aload 1 /* orderBy */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: java.lang.String java.lang.String java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* token */
        start local 3 // java.lang.String token
         3: .line 79
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 5
         4: .line 80
            aload 2 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 83
      StackMap locals: java.lang.String java.lang.String java.lang.StringBuilder java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 2 /* sb */
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 84
            aload 2 /* sb */
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 85
            aload 2 /* sb */
            aload 3 /* token */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String token
         8: .line 78
            iinc 4 1
      StackMap locals: java.lang.String java.lang.String java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 2
        10: .line 87
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.String orderBy
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     name  Ljava/lang/String;
            0   11     1  orderBy  Ljava/lang/String;
            1   11     2       sb  Ljava/lang/StringBuilder;
            3    8     3    token  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     
      orderBy  

  <T> io.ebeaninternal.server.query.CQueryUpdate buildUpdateQuery(boolean, io.ebeaninternal.server.core.OrmQueryRequest<T>);
    descriptor: (ZLio/ebeaninternal/server/core/OrmQueryRequest;)Lio/ebeaninternal/server/query/CQueryUpdate;
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // boolean deleteRequest
        start local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
         0: .line 95
            aload 2 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 3 /* query */
        start local 3 // io.ebeaninternal.api.SpiQuery query
         1: .line 96
            aload 3 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getAlias:()Ljava/lang/String;
            astore 4 /* rootTableAlias */
        start local 4 // java.lang.String rootTableAlias
         2: .line 97
            aload 3 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.setupForDeleteOrUpdate:()V
         3: .line 99
            new io.ebeaninternal.server.query.CQueryPredicates
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.binder:Lio/ebeaninternal/server/persist/Binder;
            aload 2 /* request */
            invokespecial io.ebeaninternal.server.query.CQueryPredicates.<init>:(Lio/ebeaninternal/server/persist/Binder;Lio/ebeaninternal/server/core/OrmQueryRequest;)V
            astore 5 /* predicates */
        start local 5 // io.ebeaninternal.server.query.CQueryPredicates predicates
         4: .line 100
            aload 2 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQueryPlan:()Lio/ebeaninternal/server/query/CQueryPlan;
            astore 6 /* queryPlan */
        start local 6 // io.ebeaninternal.server.query.CQueryPlan queryPlan
         5: .line 101
            aload 6 /* queryPlan */
            ifnull 8
         6: .line 103
            aload 5 /* predicates */
            iconst_0
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
         7: .line 104
            new io.ebeaninternal.server.query.CQueryUpdate
            dup
            aload 2 /* request */
            aload 5 /* predicates */
            aload 6 /* queryPlan */
            invokespecial io.ebeaninternal.server.query.CQueryUpdate.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/CQueryPlan;)V
            areturn
         8: .line 107
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder int io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.api.SpiQuery java.lang.String io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.query.CQueryPlan
      StackMap stack:
            aload 5 /* predicates */
            iconst_1
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
         9: .line 109
            aload 0 /* this */
            aload 2 /* request */
            aload 5 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
            astore 7 /* sqlTree */
        start local 7 // io.ebeaninternal.server.query.SqlTree sqlTree
        10: .line 112
            iload 1 /* deleteRequest */
            ifeq 13
        11: .line 113
            aload 0 /* this */
            aload 2 /* request */
            aload 4 /* rootTableAlias */
            aload 5 /* predicates */
            aload 7 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildDeleteSql:(Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Ljava/lang/String;
            astore 8 /* sql */
        start local 8 // java.lang.String sql
        12: .line 114
            goto 14
        end local 8 // java.lang.String sql
        13: .line 115
      StackMap locals: io.ebeaninternal.server.query.SqlTree
      StackMap stack:
            aload 0 /* this */
            aload 2 /* request */
            aload 4 /* rootTableAlias */
            aload 5 /* predicates */
            aload 7 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildUpdateSql:(Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Ljava/lang/String;
            astore 8 /* sql */
        start local 8 // java.lang.String sql
        14: .line 119
      StackMap locals: java.lang.String
      StackMap stack:
            new io.ebeaninternal.server.query.CQueryPlan
            dup
            aload 2 /* request */
            aload 8 /* sql */
            aload 7 /* sqlTree */
            aload 5 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.getLogWhereSql:()Ljava/lang/String;
            invokespecial io.ebeaninternal.server.query.CQueryPlan.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
            astore 6 /* queryPlan */
        15: .line 120
            aload 2 /* request */
            aload 6 /* queryPlan */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.putQueryPlan:(Lio/ebeaninternal/server/query/CQueryPlan;)V
        16: .line 121
            new io.ebeaninternal.server.query.CQueryUpdate
            dup
            aload 2 /* request */
            aload 5 /* predicates */
            aload 6 /* queryPlan */
            invokespecial io.ebeaninternal.server.query.CQueryUpdate.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/CQueryPlan;)V
            areturn
        end local 8 // java.lang.String sql
        end local 7 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 6 // io.ebeaninternal.server.query.CQueryPlan queryPlan
        end local 5 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 4 // java.lang.String rootTableAlias
        end local 3 // io.ebeaninternal.api.SpiQuery query
        end local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 1 // boolean deleteRequest
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   17     1   deleteRequest  Z
            0   17     2         request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            1   17     3           query  Lio/ebeaninternal/api/SpiQuery<TT;>;
            2   17     4  rootTableAlias  Ljava/lang/String;
            4   17     5      predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            5   17     6       queryPlan  Lio/ebeaninternal/server/query/CQueryPlan;
           10   17     7         sqlTree  Lio/ebeaninternal/server/query/SqlTree;
           12   13     8             sql  Ljava/lang/String;
           14   17     8             sql  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(ZLio/ebeaninternal/server/core/OrmQueryRequest<TT;>;)Lio/ebeaninternal/server/query/CQueryUpdate;
    MethodParameters:
               Name  Flags
      deleteRequest  
      request        

  private <T> java.lang.String buildDeleteSql(io.ebeaninternal.server.core.OrmQueryRequest<T>, java.lang.String, io.ebeaninternal.server.query.CQueryPredicates, io.ebeaninternal.server.query.SqlTree);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // java.lang.String rootTableAlias
        start local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 4 // io.ebeaninternal.server.query.SqlTree sqlTree
         0: .line 126
            aload 0 /* this */
            aload 2 /* rootTableAlias */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.alias:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* alias */
        start local 5 // java.lang.String alias
         1: .line 127
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.noJoins:()Z
            ifeq 7
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            invokeinterface io.ebeaninternal.api.SpiQuery.hasMaxRowsOrFirstRow:()Z
            ifne 7
         2: .line 128
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.isSupportsDeleteTableAlias:()Z
            ifeq 4
         3: .line 130
            aload 0 /* this */
            aload 0 /* this */
            ldc "delete"
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSqlDelete:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            aload 5 /* alias */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.aliasReplace:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         4: .line 131
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.getPlatform:()Lio/ebean/annotation/Platform;
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.isMySql:(Lio/ebean/annotation/Platform;)Z
            ifeq 6
         5: .line 132
            aload 0 /* this */
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "delete "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSqlDelete:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            aload 5 /* alias */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.aliasReplace:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         6: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "delete"
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSqlDelete:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.aliasStrip:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         7: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSqlDelete:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            astore 6 /* sql */
        start local 6 // java.lang.String sql
         8: .line 140
            new java.lang.StringBuilder
            dup
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getDeleteByIdInSql:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "in ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* sql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* sql */
         9: .line 141
            aload 0 /* this */
            aload 6 /* sql */
            aload 5 /* alias */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.aliasReplace:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* sql */
        10: .line 142
            aload 6 /* sql */
            areturn
        end local 6 // java.lang.String sql
        end local 5 // java.lang.String alias
        end local 4 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 2 // java.lang.String rootTableAlias
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   11     1         request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            0   11     2  rootTableAlias  Ljava/lang/String;
            0   11     3      predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0   11     4         sqlTree  Lio/ebeaninternal/server/query/SqlTree;
            1   11     5           alias  Ljava/lang/String;
            8   11     6             sql  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      request         
      rootTableAlias  
      predicates      
      sqlTree         

  private boolean isMySql(io.ebean.annotation.Platform);
    descriptor: (Lio/ebean/annotation/Platform;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebean.annotation.Platform platform
         0: .line 146
            aload 1 /* platform */
            invokevirtual io.ebean.annotation.Platform.base:()Lio/ebean/annotation/Platform;
            getstatic io.ebean.annotation.Platform.MYSQL:Lio/ebean/annotation/Platform;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // io.ebean.annotation.Platform platform
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    2     1  platform  Lio/ebean/annotation/Platform;
    MethodParameters:
          Name  Flags
      platform  

  private java.lang.String alias(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String rootTableAlias
         0: .line 150
            aload 1 /* rootTableAlias */
            ifnonnull 1
            ldc "t0"
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* rootTableAlias */
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 1 // java.lang.String rootTableAlias
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    3     1  rootTableAlias  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      rootTableAlias  

  private <T> java.lang.String buildUpdateSql(io.ebeaninternal.server.core.OrmQueryRequest<T>, java.lang.String, io.ebeaninternal.server.query.CQueryPredicates, io.ebeaninternal.server.query.SqlTree);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // java.lang.String rootTableAlias
        start local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 4 // io.ebeaninternal.server.query.SqlTree sqlTree
         0: .line 155
            new java.lang.StringBuilder
            dup
            sipush 200
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         1: .line 156
            aload 5 /* sb */
            ldc "update "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBaseTable:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 157
            aload 2 /* rootTableAlias */
            ifnull 4
         3: .line 158
            aload 5 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* rootTableAlias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 160
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 5 /* sb */
            ldc " set "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.getDbUpdateClause:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 161
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* updateClause */
        start local 6 // java.lang.String updateClause
         6: .line 163
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.noJoins:()Z
            ifeq 8
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.isInlineSqlUpdateLimit:()Z
            ifeq 8
         7: .line 165
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* updateClause */
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSqlUpdate:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.aliasStrip:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         8: .line 168
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSqlUpdate:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            astore 7 /* sql */
        start local 7 // java.lang.String sql
         9: .line 169
            new java.lang.StringBuilder
            dup
            aload 6 /* updateClause */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getWhereIdInSql:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "in ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* sql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* sql */
        10: .line 170
            aload 0 /* this */
            aload 7 /* sql */
            aload 0 /* this */
            aload 2 /* rootTableAlias */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.alias:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.aliasReplace:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* sql */
        11: .line 171
            aload 7 /* sql */
            areturn
        end local 7 // java.lang.String sql
        end local 6 // java.lang.String updateClause
        end local 5 // java.lang.StringBuilder sb
        end local 4 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 2 // java.lang.String rootTableAlias
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   12     1         request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            0   12     2  rootTableAlias  Ljava/lang/String;
            0   12     3      predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0   12     4         sqlTree  Lio/ebeaninternal/server/query/SqlTree;
            1   12     5              sb  Ljava/lang/StringBuilder;
            6   12     6    updateClause  Ljava/lang/String;
            9   12     7             sql  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      request         
      rootTableAlias  
      predicates      
      sqlTree         

  private java.lang.String aliasStrip(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String sql
         0: .line 178
            aload 1 /* sql */
            ldc "${RTA}."
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            ldc " ${RTA}"
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String sql
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  private java.lang.String aliasReplace(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String sql
        start local 2 // java.lang.String replaceWith
         0: .line 185
            aload 1 /* sql */
            ldc "${RTA}."
            new java.lang.StringBuilder
            dup
            aload 2 /* replaceWith */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            ldc "${RTA}"
            aload 2 /* replaceWith */
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String replaceWith
        end local 1 // java.lang.String sql
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1          sql  Ljava/lang/String;
            0    1     2  replaceWith  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      sql          
      replaceWith  

  io.ebeaninternal.server.query.CQueryFetchSingleAttribute buildFetchAttributeQuery(io.ebeaninternal.server.core.OrmQueryRequest<?>);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;)Lio/ebeaninternal/server/query/CQueryFetchSingleAttribute;
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
         0: .line 190
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 2 /* query */
        start local 2 // io.ebeaninternal.api.SpiQuery query
         1: .line 191
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.setSingleAttribute:()V
         2: .line 193
            new io.ebeaninternal.server.query.CQueryPredicates
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.binder:Lio/ebeaninternal/server/persist/Binder;
            aload 1 /* request */
            invokespecial io.ebeaninternal.server.query.CQueryPredicates.<init>:(Lio/ebeaninternal/server/persist/Binder;Lio/ebeaninternal/server/core/OrmQueryRequest;)V
            astore 3 /* predicates */
        start local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
         3: .line 194
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQueryPlan:()Lio/ebeaninternal/server/query/CQueryPlan;
            astore 4 /* queryPlan */
        start local 4 // io.ebeaninternal.server.query.CQueryPlan queryPlan
         4: .line 195
            aload 4 /* queryPlan */
            ifnull 7
         5: .line 196
            aload 3 /* predicates */
            iconst_0
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
         6: .line 197
            new io.ebeaninternal.server.query.CQueryFetchSingleAttribute
            dup
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* queryPlan */
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isCountDistinct:()Z
            invokespecial io.ebeaninternal.server.query.CQueryFetchSingleAttribute.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/CQueryPlan;Z)V
            areturn
         7: .line 201
      StackMap locals: io.ebeaninternal.api.SpiQuery io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.query.CQueryPlan
      StackMap stack:
            aload 3 /* predicates */
            iconst_1
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
         8: .line 203
            aload 0 /* this */
            aload 1 /* request */
            aload 3 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
            astore 5 /* sqlTree */
        start local 5 // io.ebeaninternal.server.query.SqlTree sqlTree
         9: .line 204
            aload 0 /* this */
            aconst_null
            aload 1 /* request */
            aload 3 /* predicates */
            aload 5 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSql:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            astore 6 /* s */
        start local 6 // io.ebean.config.dbplatform.SqlLimitResponse s
        10: .line 206
            new io.ebeaninternal.server.query.CQueryPlan
            dup
            aload 1 /* request */
            aload 6 /* s */
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            aload 5 /* sqlTree */
            aload 3 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.getLogWhereSql:()Ljava/lang/String;
            invokespecial io.ebeaninternal.server.query.CQueryPlan.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
            astore 4 /* queryPlan */
        11: .line 207
            aload 1 /* request */
            aload 4 /* queryPlan */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.putQueryPlan:(Lio/ebeaninternal/server/query/CQueryPlan;)V
        12: .line 208
            new io.ebeaninternal.server.query.CQueryFetchSingleAttribute
            dup
            aload 1 /* request */
            aload 3 /* predicates */
            aload 4 /* queryPlan */
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isCountDistinct:()Z
            invokespecial io.ebeaninternal.server.query.CQueryFetchSingleAttribute.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/CQueryPlan;Z)V
            areturn
        end local 6 // io.ebean.config.dbplatform.SqlLimitResponse s
        end local 5 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 4 // io.ebeaninternal.server.query.CQueryPlan queryPlan
        end local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 2 // io.ebeaninternal.api.SpiQuery query
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   13     1     request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            1   13     2       query  Lio/ebeaninternal/api/SpiQuery<*>;
            3   13     3  predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            4   13     4   queryPlan  Lio/ebeaninternal/server/query/CQueryPlan;
            9   13     5     sqlTree  Lio/ebeaninternal/server/query/SqlTree;
           10   13     6           s  Lio/ebean/config/dbplatform/SqlLimitResponse;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;)Lio/ebeaninternal/server/query/CQueryFetchSingleAttribute;
    MethodParameters:
         Name  Flags
      request  

  <T> io.ebeaninternal.server.query.CQueryFetchSingleAttribute buildFetchIdsQuery(io.ebeaninternal.server.core.OrmQueryRequest<T>);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;)Lio/ebeaninternal/server/query/CQueryFetchSingleAttribute;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
         0: .line 216
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 2 /* query */
        start local 2 // io.ebeaninternal.api.SpiQuery query
         1: .line 217
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.setSelectId:()V
         2: .line 218
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            astore 3 /* desc */
        start local 3 // io.ebeaninternal.server.deploy.BeanDescriptor desc
         3: .line 219
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isIncludeSoftDeletes:()Z
            ifne 5
            aload 3 /* desc */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isSoftDelete:()Z
            ifeq 5
         4: .line 220
            aload 2 /* query */
            aload 3 /* desc */
            aload 0 /* this */
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getAlias:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.alias:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getSoftDeletePredicate:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface io.ebeaninternal.api.SpiQuery.addSoftDeletePredicate:(Ljava/lang/String;)V
         5: .line 222
      StackMap locals: io.ebeaninternal.api.SpiQuery io.ebeaninternal.server.deploy.BeanDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildFetchAttributeQuery:(Lio/ebeaninternal/server/core/OrmQueryRequest;)Lio/ebeaninternal/server/query/CQueryFetchSingleAttribute;
            areturn
        end local 3 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        end local 2 // io.ebeaninternal.api.SpiQuery query
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    6     1  request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            1    6     2    query  Lio/ebeaninternal/api/SpiQuery<TT;>;
            3    6     3     desc  Lio/ebeaninternal/server/deploy/BeanDescriptor<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;)Lio/ebeaninternal/server/query/CQueryFetchSingleAttribute;
    MethodParameters:
         Name  Flags
      request  

  <T> io.ebeaninternal.server.query.CQueryHistorySupport getHistorySupport(io.ebeaninternal.api.SpiQuery<T>);
    descriptor: (Lio/ebeaninternal/api/SpiQuery;)Lio/ebeaninternal/server/query/CQueryHistorySupport;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.api.SpiQuery query
         0: .line 229
            aload 1 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getTemporalMode:()Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            invokevirtual io.ebeaninternal.api.SpiQuery$TemporalMode.isHistory:()Z
            ifeq 1
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.historySupport:Lio/ebeaninternal/server/query/CQueryHistorySupport;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: io.ebeaninternal.server.query.CQueryHistorySupport
         2: areturn
        end local 1 // io.ebeaninternal.api.SpiQuery query
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    3     1  query  Lio/ebeaninternal/api/SpiQuery<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/api/SpiQuery<TT;>;)Lio/ebeaninternal/server/query/CQueryHistorySupport;
    MethodParameters:
       Name  Flags
      query  

  <T> io.ebeaninternal.server.query.CQueryDraftSupport getDraftSupport(io.ebeaninternal.api.SpiQuery<T>);
    descriptor: (Lio/ebeaninternal/api/SpiQuery;)Lio/ebeaninternal/server/query/CQueryDraftSupport;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.api.SpiQuery query
         0: .line 236
            aload 1 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getTemporalMode:()Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            getstatic io.ebeaninternal.api.SpiQuery$TemporalMode.DRAFT:Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            if_acmpne 1
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.draftSupport:Lio/ebeaninternal/server/query/CQueryDraftSupport;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: io.ebeaninternal.server.query.CQueryDraftSupport
         2: areturn
        end local 1 // io.ebeaninternal.api.SpiQuery query
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    3     1  query  Lio/ebeaninternal/api/SpiQuery<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/api/SpiQuery<TT;>;)Lio/ebeaninternal/server/query/CQueryDraftSupport;
    MethodParameters:
       Name  Flags
      query  

  <T> io.ebeaninternal.server.query.CQueryRowCount buildRowCountQuery(io.ebeaninternal.server.core.OrmQueryRequest<T>);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;)Lio/ebeaninternal/server/query/CQueryRowCount;
    flags: (0x0000) 
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
         0: .line 244
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 2 /* query */
        start local 2 // io.ebeaninternal.api.SpiQuery query
         1: .line 247
            aload 2 /* query */
            aconst_null
            invokeinterface io.ebeaninternal.api.SpiQuery.setOrder:(Lio/ebean/OrderBy;)Lio/ebean/Query;
            pop
         2: .line 248
            aload 2 /* query */
            iconst_0
            invokeinterface io.ebeaninternal.api.SpiQuery.setFirstRow:(I)Lio/ebean/Query;
            pop
         3: .line 249
            aload 2 /* query */
            iconst_0
            invokeinterface io.ebeaninternal.api.SpiQuery.setMaxRows:(I)Lio/ebean/Query;
            pop
         4: .line 251
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isDistinct:()Z
            istore 3 /* countDistinct */
        start local 3 // boolean countDistinct
         5: .line 252
            iconst_0
            istore 4 /* withAgg */
        start local 4 // boolean withAgg
         6: .line 253
            iload 3 /* countDistinct */
            ifne 10
         7: .line 254
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* query */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.includesAggregation:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/api/SpiQuery;)Z
            istore 4 /* withAgg */
         8: .line 255
            iload 4 /* withAgg */
            ifne 10
         9: .line 257
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.setSelectId:()V
        10: .line 261
      StackMap locals: io.ebeaninternal.api.SpiQuery int int
      StackMap stack:
            new io.ebeaninternal.server.query.CQueryPredicates
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.binder:Lio/ebeaninternal/server/persist/Binder;
            aload 1 /* request */
            invokespecial io.ebeaninternal.server.query.CQueryPredicates.<init>:(Lio/ebeaninternal/server/persist/Binder;Lio/ebeaninternal/server/core/OrmQueryRequest;)V
            astore 5 /* predicates */
        start local 5 // io.ebeaninternal.server.query.CQueryPredicates predicates
        11: .line 262
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQueryPlan:()Lio/ebeaninternal/server/query/CQueryPlan;
            astore 6 /* queryPlan */
        start local 6 // io.ebeaninternal.server.query.CQueryPlan queryPlan
        12: .line 263
            aload 6 /* queryPlan */
            ifnull 15
        13: .line 265
            aload 5 /* predicates */
            iconst_0
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
        14: .line 266
            new io.ebeaninternal.server.query.CQueryRowCount
            dup
            aload 6 /* queryPlan */
            aload 1 /* request */
            aload 5 /* predicates */
            invokespecial io.ebeaninternal.server.query.CQueryRowCount.<init>:(Lio/ebeaninternal/server/query/CQueryPlan;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)V
            areturn
        15: .line 269
      StackMap locals: io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.query.CQueryPlan
      StackMap stack:
            aload 5 /* predicates */
            iconst_1
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
        16: .line 271
            aload 0 /* this */
            aload 1 /* request */
            aload 5 /* predicates */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.selectCountWithColumnAlias:Z
            ifeq 17
            iload 4 /* withAgg */
            ifeq 17
            iconst_1
            goto 18
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.api.SpiQuery int int io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.query.CQueryPlan
      StackMap stack: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates
        17: iconst_0
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.api.SpiQuery int int io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.query.CQueryPlan
      StackMap stack: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates int
        18: invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Z)Lio/ebeaninternal/server/query/SqlTree;
            astore 7 /* sqlTree */
        start local 7 // io.ebeaninternal.server.query.SqlTree sqlTree
        19: .line 272
            getstatic io.ebeaninternal.api.SpiQuery$TemporalMode.CURRENT:Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getTemporalMode:()Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            if_acmpne 21
        20: .line 273
            aload 7 /* sqlTree */
            aload 2 /* query */
            invokevirtual io.ebeaninternal.server.query.SqlTree.addSoftDeletePredicate:(Lio/ebeaninternal/api/SpiQuery;)V
        21: .line 276
      StackMap locals: io.ebeaninternal.server.query.SqlTree
      StackMap stack:
            aload 7 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.hasMany:()Z
            ifne 22
            iload 4 /* withAgg */
            ifne 22
            iconst_0
            goto 23
      StackMap locals:
      StackMap stack:
        22: iconst_1
      StackMap locals:
      StackMap stack: int
        23: istore 8 /* wrap */
        start local 8 // boolean wrap
        24: .line 278
            aconst_null
            astore 9 /* sqlSelect */
        start local 9 // java.lang.String sqlSelect
        25: .line 279
            iload 3 /* countDistinct */
            ifeq 29
        26: .line 280
            aload 7 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.isSingleProperty:()Z
            ifeq 31
        27: .line 281
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.setInlineCountDistinct:()V
        28: .line 283
            goto 31
      StackMap locals: int java.lang.String
      StackMap stack:
        29: iload 8 /* wrap */
            ifne 31
        30: .line 284
            ldc "select count(*)"
            astore 9 /* sqlSelect */
        31: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* sqlSelect */
            aload 1 /* request */
            aload 5 /* predicates */
            aload 7 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSql:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            astore 10 /* s */
        start local 10 // io.ebean.config.dbplatform.SqlLimitResponse s
        32: .line 288
            aload 10 /* s */
            invokevirtual io.ebean.config.dbplatform.SqlLimitResponse.getSql:()Ljava/lang/String;
            astore 11 /* sql */
        start local 11 // java.lang.String sql
        33: .line 290
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.isInlineCountDistinct:()Z
            ifne 42
        34: .line 291
            iload 3 /* countDistinct */
            ifeq 37
        35: .line 292
            aload 0 /* this */
            aload 11 /* sql */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.wrapSelectCount:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* sql */
        36: .line 294
            goto 42
      StackMap locals: io.ebean.config.dbplatform.SqlLimitResponse java.lang.String
      StackMap stack:
        37: iload 8 /* wrap */
            ifne 38
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isRawSql:()Z
            ifeq 42
        38: .line 296
      StackMap locals:
      StackMap stack:
            aload 11 /* sql */
            ldc " order by "
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 12 /* pos */
        start local 12 // int pos
        39: .line 297
            iload 12 /* pos */
            iconst_m1
            if_icmpeq 41
        40: .line 298
            aload 11 /* sql */
            iconst_0
            iload 12 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* sql */
        41: .line 300
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 11 /* sql */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.wrapSelectCount:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* sql */
        end local 12 // int pos
        42: .line 305
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.server.query.CQueryPlan
            dup
            aload 1 /* request */
            aload 11 /* sql */
            aload 7 /* sqlTree */
            aload 5 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.getLogWhereSql:()Ljava/lang/String;
            invokespecial io.ebeaninternal.server.query.CQueryPlan.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Ljava/lang/String;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
            astore 6 /* queryPlan */
        43: .line 306
            aload 1 /* request */
            aload 6 /* queryPlan */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.putQueryPlan:(Lio/ebeaninternal/server/query/CQueryPlan;)V
        44: .line 308
            new io.ebeaninternal.server.query.CQueryRowCount
            dup
            aload 6 /* queryPlan */
            aload 1 /* request */
            aload 5 /* predicates */
            invokespecial io.ebeaninternal.server.query.CQueryRowCount.<init>:(Lio/ebeaninternal/server/query/CQueryPlan;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)V
            areturn
        end local 11 // java.lang.String sql
        end local 10 // io.ebean.config.dbplatform.SqlLimitResponse s
        end local 9 // java.lang.String sqlSelect
        end local 8 // boolean wrap
        end local 7 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 6 // io.ebeaninternal.server.query.CQueryPlan queryPlan
        end local 5 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 4 // boolean withAgg
        end local 3 // boolean countDistinct
        end local 2 // io.ebeaninternal.api.SpiQuery query
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   45     0           this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   45     1        request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            1   45     2          query  Lio/ebeaninternal/api/SpiQuery<TT;>;
            5   45     3  countDistinct  Z
            6   45     4        withAgg  Z
           11   45     5     predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
           12   45     6      queryPlan  Lio/ebeaninternal/server/query/CQueryPlan;
           19   45     7        sqlTree  Lio/ebeaninternal/server/query/SqlTree;
           24   45     8           wrap  Z
           25   45     9      sqlSelect  Ljava/lang/String;
           32   45    10              s  Lio/ebean/config/dbplatform/SqlLimitResponse;
           33   45    11            sql  Ljava/lang/String;
           39   42    12            pos  I
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;)Lio/ebeaninternal/server/query/CQueryRowCount;
    MethodParameters:
         Name  Flags
      request  

  private <T> boolean includesAggregation(io.ebeaninternal.server.core.OrmQueryRequest<T>, io.ebeaninternal.api.SpiQuery<T>);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/api/SpiQuery;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebeaninternal.api.SpiQuery query
         0: .line 315
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 2 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getDetail:()Lio/ebeaninternal/server/querydefn/OrmQueryDetail;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.includesAggregation:(Lio/ebeaninternal/server/querydefn/OrmQueryDetail;)Z
            ireturn
        end local 2 // io.ebeaninternal.api.SpiQuery query
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1  request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            0    1     2    query  Lio/ebeaninternal/api/SpiQuery<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;Lio/ebeaninternal/api/SpiQuery<TT;>;)Z
    MethodParameters:
         Name  Flags
      request  
      query    

  private java.lang.String wrapSelectCount(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String sql
         0: .line 319
            new java.lang.StringBuilder
            dup
            ldc "select count(*) from ( "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* sql */
         1: .line 320
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.selectCountWithAlias:Z
            ifeq 3
         2: .line 321
            new java.lang.StringBuilder
            dup
            aload 1 /* sql */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " as c"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* sql */
         3: .line 323
      StackMap locals:
      StackMap stack:
            aload 1 /* sql */
            areturn
        end local 1 // java.lang.String sql
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    4     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  <T> io.ebeaninternal.server.query.CQuery<T> buildQuery(io.ebeaninternal.server.core.OrmQueryRequest<T>);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;)Lio/ebeaninternal/server/query/CQuery;
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
         0: .line 332
            new io.ebeaninternal.server.query.CQueryPredicates
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.binder:Lio/ebeaninternal/server/persist/Binder;
            aload 1 /* request */
            invokespecial io.ebeaninternal.server.query.CQueryPredicates.<init>:(Lio/ebeaninternal/server/persist/Binder;Lio/ebeaninternal/server/core/OrmQueryRequest;)V
            astore 2 /* predicates */
        start local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
         1: .line 334
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQueryPlan:()Lio/ebeaninternal/server/query/CQueryPlan;
            astore 3 /* queryPlan */
        start local 3 // io.ebeaninternal.server.query.CQueryPlan queryPlan
         2: .line 335
            aload 3 /* queryPlan */
            ifnull 5
         3: .line 338
            aload 2 /* predicates */
            iconst_0
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
         4: .line 339
            new io.ebeaninternal.server.query.CQuery
            dup
            aload 1 /* request */
            aload 2 /* predicates */
            aload 3 /* queryPlan */
            invokespecial io.ebeaninternal.server.query.CQuery.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/CQueryPlan;)V
            areturn
         5: .line 350
      StackMap locals: io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.query.CQueryPlan
      StackMap stack:
            aload 2 /* predicates */
            iconst_1
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.prepare:(Z)V
         6: .line 353
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 4 /* query */
        start local 4 // io.ebeaninternal.api.SpiQuery query
         7: .line 355
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
            astore 5 /* sqlTree */
        start local 5 // io.ebeaninternal.server.query.SqlTree sqlTree
         8: .line 356
            aload 4 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isAsOfQuery:()Z
            ifeq 11
         9: .line 357
            aload 5 /* sqlTree */
            aload 4 /* query */
            invokevirtual io.ebeaninternal.server.query.SqlTree.addAsOfTableAlias:(Lio/ebeaninternal/api/SpiQuery;)V
        10: .line 358
            goto 13
      StackMap locals: io.ebeaninternal.api.SpiQuery io.ebeaninternal.server.query.SqlTree
      StackMap stack:
        11: getstatic io.ebeaninternal.api.SpiQuery$TemporalMode.CURRENT:Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            aload 4 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getTemporalMode:()Lio/ebeaninternal/api/SpiQuery$TemporalMode;
            if_acmpne 13
        12: .line 359
            aload 5 /* sqlTree */
            aload 4 /* query */
            invokevirtual io.ebeaninternal.server.query.SqlTree.addSoftDeletePredicate:(Lio/ebeaninternal/api/SpiQuery;)V
        13: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* request */
            aload 2 /* predicates */
            aload 5 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.buildSql:(Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            astore 6 /* res */
        start local 6 // io.ebean.config.dbplatform.SqlLimitResponse res
        14: .line 364
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.isRawSql:()Z
            istore 7 /* rawSql */
        start local 7 // boolean rawSql
        15: .line 365
            iload 7 /* rawSql */
            ifeq 18
        16: .line 366
            new io.ebeaninternal.server.query.CQueryPlanRawSql
            dup
            aload 1 /* request */
            aload 6 /* res */
            aload 5 /* sqlTree */
            aload 2 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.getLogWhereSql:()Ljava/lang/String;
            invokespecial io.ebeaninternal.server.query.CQueryPlanRawSql.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
            astore 3 /* queryPlan */
        17: .line 368
            goto 19
        18: .line 369
      StackMap locals: io.ebean.config.dbplatform.SqlLimitResponse int
      StackMap stack:
            new io.ebeaninternal.server.query.CQueryPlan
            dup
            aload 1 /* request */
            aload 6 /* res */
            aload 5 /* sqlTree */
            iconst_0
            aload 2 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.getLogWhereSql:()Ljava/lang/String;
            invokespecial io.ebeaninternal.server.query.CQueryPlan.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;ZLjava/lang/String;)V
            astore 3 /* queryPlan */
        19: .line 372
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            astore 8 /* desc */
        start local 8 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        20: .line 373
            aload 8 /* desc */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isReadAuditing:()Z
            ifeq 22
        21: .line 375
            aload 8 /* desc */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getReadAuditLogger:()Lio/ebean/event/readaudit/ReadAuditLogger;
            new io.ebean.event.readaudit.ReadAuditQueryPlan
            dup
            aload 8 /* desc */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getFullName:()Ljava/lang/String;
            aload 3 /* queryPlan */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.getAuditQueryKey:()Ljava/lang/String;
            aload 3 /* queryPlan */
            invokevirtual io.ebeaninternal.server.query.CQueryPlan.getSql:()Ljava/lang/String;
            invokespecial io.ebean.event.readaudit.ReadAuditQueryPlan.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface io.ebean.event.readaudit.ReadAuditLogger.queryPlan:(Lio/ebean/event/readaudit/ReadAuditQueryPlan;)V
        22: .line 380
      StackMap locals: io.ebeaninternal.server.deploy.BeanDescriptor
      StackMap stack:
            aload 1 /* request */
            aload 3 /* queryPlan */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.putQueryPlan:(Lio/ebeaninternal/server/query/CQueryPlan;)V
        23: .line 382
            new io.ebeaninternal.server.query.CQuery
            dup
            aload 1 /* request */
            aload 2 /* predicates */
            aload 3 /* queryPlan */
            invokespecial io.ebeaninternal.server.query.CQuery.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/CQueryPlan;)V
            areturn
        end local 8 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        end local 7 // boolean rawSql
        end local 6 // io.ebean.config.dbplatform.SqlLimitResponse res
        end local 5 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 4 // io.ebeaninternal.api.SpiQuery query
        end local 3 // io.ebeaninternal.server.query.CQueryPlan queryPlan
        end local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   24     1     request  Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;
            1   24     2  predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            2   24     3   queryPlan  Lio/ebeaninternal/server/query/CQueryPlan;
            7   24     4       query  Lio/ebeaninternal/api/SpiQuery<TT;>;
            8   24     5     sqlTree  Lio/ebeaninternal/server/query/SqlTree;
           14   24     6         res  Lio/ebean/config/dbplatform/SqlLimitResponse;
           15   24     7      rawSql  Z
           20   24     8        desc  Lio/ebeaninternal/server/deploy/BeanDescriptor<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/ebeaninternal/server/core/OrmQueryRequest<TT;>;)Lio/ebeaninternal/server/query/CQuery<TT;>;
    MethodParameters:
         Name  Flags
      request  

  private io.ebeaninternal.server.query.SqlTree createSqlTree(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
         0: .line 397
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* predicates */
            iconst_0
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Z)Lio/ebeaninternal/server/query/SqlTree;
            areturn
        end local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1     request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0    1     2  predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
    MethodParameters:
            Name  Flags
      request     
      predicates  

  private io.ebeaninternal.server.query.SqlTree createSqlTree(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates, boolean);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Z)Lio/ebeaninternal/server/query/SqlTree;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 3 // boolean forceColumnAlias
         0: .line 402
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.isNativeSql:()Z
            ifeq 2
         1: .line 403
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createNativeSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
            areturn
         2: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.isRawSql:()Z
            ifeq 4
         3: .line 406
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createRawSqlSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
            areturn
         4: .line 408
      StackMap locals:
      StackMap stack:
            iload 3 /* forceColumnAlias */
            ifeq 5
            ldc "c"
            goto 6
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.columnAliasPrefix:Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 4 /* colAliasPrefix */
        start local 4 // java.lang.String colAliasPrefix
         7: .line 409
            new io.ebeaninternal.server.query.SqlTreeBuilder
            dup
            aload 4 /* colAliasPrefix */
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* predicates */
            invokespecial io.ebeaninternal.server.query.SqlTreeBuilder.<init>:(Ljava/lang/String;Lio/ebeaninternal/server/query/CQueryBuilder;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)V
            invokevirtual io.ebeaninternal.server.query.SqlTreeBuilder.build:()Lio/ebeaninternal/server/query/SqlTree;
            areturn
        end local 4 // java.lang.String colAliasPrefix
        end local 3 // boolean forceColumnAlias
        end local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    8     1           request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0    8     2        predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0    8     3  forceColumnAlias  Z
            7    8     4    colAliasPrefix  Ljava/lang/String;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;Z)Lio/ebeaninternal/server/query/SqlTree;
    MethodParameters:
                  Name  Flags
      request           
      predicates        
      forceColumnAlias  

  private java.lang.String nativeQueryPaging(io.ebeaninternal.api.SpiQuery<?>, java.lang.String);
    descriptor: (Lio/ebeaninternal/api/SpiQuery;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.api.SpiQuery query
        start local 2 // java.lang.String sql
         0: .line 413
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.getBasicSqlLimiter:()Lio/ebean/config/dbplatform/BasicSqlLimiter;
            aload 2 /* sql */
            aload 1 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getFirstRow:()I
            aload 1 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getMaxRows:()I
            invokeinterface io.ebean.config.dbplatform.BasicSqlLimiter.limit:(Ljava/lang/String;II)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String sql
        end local 1 // io.ebeaninternal.api.SpiQuery query
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1  query  Lio/ebeaninternal/api/SpiQuery<*>;
            0    1     2    sql  Ljava/lang/String;
    Signature: (Lio/ebeaninternal/api/SpiQuery<*>;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      query  
      sql    

  private io.ebeaninternal.server.query.SqlTree createNativeSqlTree(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
         0: .line 421
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 3 /* query */
        start local 3 // io.ebeaninternal.api.SpiQuery query
         1: .line 424
            aload 2 /* predicates */
            aload 3 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getNativeSql:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.parseBindParams:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* sql */
        start local 4 // java.lang.String sql
         2: .line 425
            aload 3 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.hasMaxRowsOrFirstRow:()Z
            ifeq 4
         3: .line 426
            aload 0 /* this */
            aload 3 /* query */
            aload 4 /* sql */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.nativeQueryPaging:(Lio/ebeaninternal/api/SpiQuery;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* sql */
         4: .line 428
      StackMap locals: io.ebeaninternal.api.SpiQuery java.lang.String
      StackMap stack:
            aload 3 /* query */
            aload 4 /* sql */
            invokeinterface io.ebeaninternal.api.SpiQuery.setGeneratedSql:(Ljava/lang/String;)V
         5: .line 430
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getTransaction:()Lio/ebeaninternal/api/SpiTransaction;
            invokeinterface io.ebeaninternal.api.SpiTransaction.getConnection:()Ljava/sql/Connection;
            astore 5 /* connection */
        start local 5 // java.sql.Connection connection
         6: .line 432
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            astore 6 /* desc */
        start local 6 // io.ebeaninternal.server.deploy.BeanDescriptor desc
         7: .line 436
            aload 5 /* connection */
            aload 4 /* sql */
            sipush 1003
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.isSupportsResultSetConcurrencyModeUpdatable:()Z
            ifeq 8
            sipush 1008
            goto 9
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.api.SpiQuery java.lang.String java.sql.Connection io.ebeaninternal.server.deploy.BeanDescriptor
      StackMap stack: java.sql.Connection java.lang.String int
         8: sipush 1007
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.api.SpiQuery java.lang.String java.sql.Connection io.ebeaninternal.server.deploy.BeanDescriptor
      StackMap stack: java.sql.Connection java.lang.String int int
         9: invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;II)Ljava/sql/PreparedStatement;
            astore 7 /* statement */
        start local 7 // java.sql.PreparedStatement statement
        10: .line 437
            aload 2 /* predicates */
            aload 7 /* statement */
            aload 5 /* connection */
            invokevirtual io.ebeaninternal.server.query.CQueryPredicates.bind:(Ljava/sql/PreparedStatement;Ljava/sql/Connection;)Ljava/lang/String;
            pop
        11: .line 439
            aload 7 /* statement */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 8 /* resultSet */
        start local 8 // java.sql.ResultSet resultSet
        12: .line 440
            aload 8 /* resultSet */
            invokeinterface java.sql.ResultSet.getMetaData:()Ljava/sql/ResultSetMetaData;
            astore 9 /* metaData */
        start local 9 // java.sql.ResultSetMetaData metaData
        13: .line 442
            iconst_1
            aload 9 /* metaData */
            invokeinterface java.sql.ResultSetMetaData.getColumnCount:()I
            iadd
            istore 10 /* cols */
        start local 10 // int cols
        14: .line 443
            new java.util.ArrayList
            dup
            iload 10 /* cols */
            iconst_1
            isub
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 11 /* propertyNames */
        start local 11 // java.util.List propertyNames
        15: .line 444
            iconst_1
            istore 12 /* i */
        start local 12 // int i
        16: goto 25
        17: .line 445
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.api.SpiQuery java.lang.String java.sql.Connection io.ebeaninternal.server.deploy.BeanDescriptor java.sql.PreparedStatement java.sql.ResultSet java.sql.ResultSetMetaData int java.util.List int
      StackMap stack:
            aload 9 /* metaData */
            iload 12 /* i */
            invokeinterface java.sql.ResultSetMetaData.getTableName:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 13 /* tableName */
        start local 13 // java.lang.String tableName
        18: .line 446
            aload 9 /* metaData */
            iload 12 /* i */
            invokeinterface java.sql.ResultSetMetaData.getColumnName:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 14 /* columnName */
        start local 14 // java.lang.String columnName
        19: .line 447
            aload 6 /* desc */
            aload 13 /* tableName */
            aload 14 /* columnName */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.findBeanPath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 15 /* path */
        start local 15 // java.lang.String path
        20: .line 448
            aload 15 /* path */
            ifnull 23
        21: .line 449
            aload 11 /* propertyNames */
            aload 15 /* path */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 450
            goto 24
        23: .line 451
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 11 /* propertyNames */
            ldc "$$_IGNORE_COLUMN_$$"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // java.lang.String path
        end local 14 // java.lang.String columnName
        end local 13 // java.lang.String tableName
        24: .line 444
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 12 /* i */
            iload 10 /* cols */
            if_icmplt 17
        end local 12 // int i
        26: .line 455
            aload 8 /* resultSet */
            aload 11 /* propertyNames */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic io.ebean.RawSqlBuilder.resultSet:(Ljava/sql/ResultSet;[Ljava/lang/String;)Lio/ebean/RawSql;
            astore 12 /* rawSql */
        start local 12 // io.ebean.RawSql rawSql
        27: .line 456
            aload 3 /* query */
            aload 12 /* rawSql */
            invokeinterface io.ebeaninternal.api.SpiQuery.setRawSql:(Lio/ebean/RawSql;)Lio/ebean/Query;
            pop
        28: .line 457
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* predicates */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.createRawSqlSqlTree:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
        29: areturn
        end local 12 // io.ebean.RawSql rawSql
        end local 11 // java.util.List propertyNames
        end local 10 // int cols
        end local 9 // java.sql.ResultSetMetaData metaData
        end local 8 // java.sql.ResultSet resultSet
        end local 7 // java.sql.PreparedStatement statement
        30: .line 459
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.api.SpiQuery java.lang.String java.sql.Connection io.ebeaninternal.server.deploy.BeanDescriptor
      StackMap stack: java.sql.SQLException
            astore 7 /* e */
        start local 7 // java.sql.SQLException e
        31: .line 460
            new java.lang.RuntimeException
            dup
            aload 7 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.sql.SQLException e
        end local 6 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        end local 5 // java.sql.Connection connection
        end local 4 // java.lang.String sql
        end local 3 // io.ebeaninternal.api.SpiQuery query
        end local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   32     1        request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0   32     2     predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            1   32     3          query  Lio/ebeaninternal/api/SpiQuery<*>;
            2   32     4            sql  Ljava/lang/String;
            6   32     5     connection  Ljava/sql/Connection;
            7   32     6           desc  Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
           10   30     7      statement  Ljava/sql/PreparedStatement;
           12   30     8      resultSet  Ljava/sql/ResultSet;
           13   30     9       metaData  Ljava/sql/ResultSetMetaData;
           14   30    10           cols  I
           15   30    11  propertyNames  Ljava/util/List<Ljava/lang/String;>;
           16   26    12              i  I
           18   24    13      tableName  Ljava/lang/String;
           19   24    14     columnName  Ljava/lang/String;
           20   24    15           path  Ljava/lang/String;
           27   30    12         rawSql  Lio/ebean/RawSql;
           31   32     7              e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           7    29      30  Class java.sql.SQLException
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
    MethodParameters:
            Name  Flags
      request     
      predicates  

  private io.ebeaninternal.server.query.SqlTree createRawSqlSqlTree(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
         0: .line 466
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getBeanDescriptor:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            astore 3 /* descriptor */
        start local 3 // io.ebeaninternal.server.deploy.BeanDescriptor descriptor
         1: .line 467
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            invokeinterface io.ebeaninternal.api.SpiQuery.getRawSql:()Lio/ebeaninternal/server/rawsql/SpiRawSql;
            invokeinterface io.ebeaninternal.server.rawsql.SpiRawSql.getColumnMapping:()Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping;
            astore 4 /* columnMapping */
        start local 4 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping columnMapping
         2: .line 469
            new io.ebean.text.PathProperties
            dup
            invokespecial io.ebean.text.PathProperties.<init>:()V
            astore 5 /* pathProps */
        start local 5 // io.ebean.text.PathProperties pathProps
         3: .line 472
            aload 4 /* columnMapping */
            invokevirtual io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping.getColumns:()Ljava/util/Iterator;
            astore 6 /* it */
        start local 6 // java.util.Iterator it
         4: .line 473
            goto 17
         5: .line 474
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping io.ebean.text.PathProperties java.util.Iterator
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column
            astore 7 /* column */
        start local 7 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column column
         6: .line 475
            aload 7 /* column */
            invokevirtual io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column.getPropertyName:()Ljava/lang/String;
            astore 8 /* propertyName */
        start local 8 // java.lang.String propertyName
         7: .line 476
            ldc "$$_IGNORE_COLUMN_$$"
            aload 8 /* propertyName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
         8: .line 477
            aload 3 /* descriptor */
            aload 8 /* propertyName */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getElGetValue:(Ljava/lang/String;)Lio/ebeaninternal/server/el/ElPropertyValue;
            astore 9 /* el */
        start local 9 // io.ebeaninternal.server.el.ElPropertyValue el
         9: .line 478
            aload 9 /* el */
            ifnonnull 14
            aload 8 /* propertyName */
            ldc "Id"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 14
        10: .line 480
            aload 0 /* this */
            aload 8 /* propertyName */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.assocOneIdPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* foreignIdPath */
        start local 10 // java.lang.String foreignIdPath
        11: .line 481
            aload 3 /* descriptor */
            aload 10 /* foreignIdPath */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getElGetValue:(Ljava/lang/String;)Lio/ebeaninternal/server/el/ElPropertyValue;
            astore 9 /* el */
        12: .line 482
            aload 9 /* el */
            ifnull 14
        13: .line 483
            aload 10 /* foreignIdPath */
            astore 8 /* propertyName */
        end local 10 // java.lang.String foreignIdPath
        14: .line 486
      StackMap locals: io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column java.lang.String io.ebeaninternal.server.el.ElPropertyValue
      StackMap stack:
            aload 9 /* el */
            ifnonnull 16
        15: .line 487
            new javax.persistence.PersistenceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Property ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] not found on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* descriptor */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getFullName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* pathProps */
            aload 7 /* column */
            aload 8 /* propertyName */
            aload 9 /* el */
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder.addRawColumnMapping:(Lio/ebean/text/PathProperties;Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping$Column;Ljava/lang/String;Lio/ebeaninternal/server/el/ElPropertyValue;)V
        end local 9 // io.ebeaninternal.server.el.ElPropertyValue el
        end local 8 // java.lang.String propertyName
        end local 7 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column column
        17: .line 473
      StackMap locals:
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        18: .line 493
            new io.ebeaninternal.server.querydefn.OrmQueryDetail
            dup
            invokespecial io.ebeaninternal.server.querydefn.OrmQueryDetail.<init>:()V
            astore 7 /* detail */
        start local 7 // io.ebeaninternal.server.querydefn.OrmQueryDetail detail
        19: .line 496
            aload 5 /* pathProps */
            invokevirtual io.ebean.text.PathProperties.getPathProps:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 22
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping io.ebean.text.PathProperties java.util.Iterator io.ebeaninternal.server.querydefn.OrmQueryDetail top java.util.Iterator
      StackMap stack:
        20: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebean.text.PathProperties$Props
            astore 8 /* props */
        start local 8 // io.ebean.text.PathProperties$Props props
        21: .line 497
            aload 7 /* detail */
            aload 8 /* props */
            invokevirtual io.ebean.text.PathProperties$Props.getPath:()Ljava/lang/String;
            aload 8 /* props */
            invokevirtual io.ebean.text.PathProperties$Props.getProperties:()Ljava/util/LinkedHashSet;
            invokevirtual io.ebeaninternal.server.querydefn.OrmQueryDetail.fetch:(Ljava/lang/String;Ljava/util/LinkedHashSet;)V
        end local 8 // io.ebean.text.PathProperties$Props props
        22: .line 496
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 501
            iconst_1
            istore 8 /* rawNoId */
        start local 8 // boolean rawNoId
        24: .line 502
            aload 3 /* descriptor */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getIdProperty:()Lio/ebeaninternal/server/deploy/BeanProperty;
            astore 9 /* idProperty */
        start local 9 // io.ebeaninternal.server.deploy.BeanProperty idProperty
        25: .line 503
            aload 9 /* idProperty */
            ifnull 27
            aload 4 /* columnMapping */
            aload 9 /* idProperty */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getName:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping.contains:(Ljava/lang/String;)Z
            ifeq 27
        26: .line 505
            iconst_0
            istore 8 /* rawNoId */
        27: .line 509
      StackMap locals: io.ebeaninternal.server.query.CQueryBuilder io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.CQueryPredicates io.ebeaninternal.server.deploy.BeanDescriptor io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping io.ebean.text.PathProperties java.util.Iterator io.ebeaninternal.server.querydefn.OrmQueryDetail int io.ebeaninternal.server.deploy.BeanProperty
      StackMap stack:
            new io.ebeaninternal.server.query.SqlTreeBuilder
            dup
            aload 1 /* request */
            aload 2 /* predicates */
            aload 7 /* detail */
            iload 8 /* rawNoId */
            invokespecial io.ebeaninternal.server.query.SqlTreeBuilder.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/querydefn/OrmQueryDetail;Z)V
            invokevirtual io.ebeaninternal.server.query.SqlTreeBuilder.build:()Lio/ebeaninternal/server/query/SqlTree;
            areturn
        end local 9 // io.ebeaninternal.server.deploy.BeanProperty idProperty
        end local 8 // boolean rawNoId
        end local 7 // io.ebeaninternal.server.querydefn.OrmQueryDetail detail
        end local 6 // java.util.Iterator it
        end local 5 // io.ebean.text.PathProperties pathProps
        end local 4 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping columnMapping
        end local 3 // io.ebeaninternal.server.deploy.BeanDescriptor descriptor
        end local 2 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   28     1        request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0   28     2     predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            1   28     3     descriptor  Lio/ebeaninternal/server/deploy/BeanDescriptor<*>;
            2   28     4  columnMapping  Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping;
            3   28     5      pathProps  Lio/ebean/text/PathProperties;
            4   28     6             it  Ljava/util/Iterator<Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping$Column;>;
            6   17     7         column  Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping$Column;
            7   17     8   propertyName  Ljava/lang/String;
            9   17     9             el  Lio/ebeaninternal/server/el/ElPropertyValue;
           11   14    10  foreignIdPath  Ljava/lang/String;
           19   28     7         detail  Lio/ebeaninternal/server/querydefn/OrmQueryDetail;
           21   22     8          props  Lio/ebean/text/PathProperties$Props;
           24   28     8        rawNoId  Z
           25   28     9     idProperty  Lio/ebeaninternal/server/deploy/BeanProperty;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;)Lio/ebeaninternal/server/query/SqlTree;
    MethodParameters:
            Name  Flags
      request     
      predicates  

  private void addRawColumnMapping(io.ebean.text.PathProperties, io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column, java.lang.String, io.ebeaninternal.server.el.ElPropertyValue);
    descriptor: (Lio/ebean/text/PathProperties;Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping$Column;Ljava/lang/String;Lio/ebeaninternal/server/el/ElPropertyValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebean.text.PathProperties pathProps
        start local 2 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column column
        start local 3 // java.lang.String propertyName
        start local 4 // io.ebeaninternal.server.el.ElPropertyValue el
         0: .line 513
            aload 4 /* el */
            invokeinterface io.ebeaninternal.server.el.ElPropertyValue.getBeanProperty:()Lio/ebeaninternal/server/deploy/BeanProperty;
            astore 5 /* beanProperty */
        start local 5 // io.ebeaninternal.server.deploy.BeanProperty beanProperty
         1: .line 514
            aload 5 /* beanProperty */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isId:()Z
            ifeq 5
         2: .line 515
            aload 3 /* propertyName */
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 12
         3: .line 517
            aload 3 /* propertyName */
            invokestatic io.ebean.util.SplitName.parent:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* propertyName */
         4: .line 519
            goto 12
      StackMap locals: io.ebeaninternal.server.deploy.BeanProperty
      StackMap stack:
         5: aload 5 /* beanProperty */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.isDiscriminator:()Z
            ifeq 8
         6: .line 520
            aload 3 /* propertyName */
            invokestatic io.ebean.util.SplitName.parent:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* propertyName */
         7: .line 521
            goto 12
      StackMap locals:
      StackMap stack:
         8: aload 5 /* beanProperty */
            instanceof io.ebeaninternal.server.deploy.BeanPropertyAssocOne
            ifeq 12
         9: .line 522
            new java.lang.StringBuilder
            dup
            ldc "Column ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* column */
            invokevirtual io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column.getDbColumn:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] mapped to complex Property["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
        10: .line 523
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ". It should be mapped to a simple property (probably the Id property). "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        11: .line 524
            new javax.persistence.PersistenceException
            dup
            aload 6 /* msg */
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String msg
        12: .line 526
      StackMap locals:
      StackMap stack:
            aload 3 /* propertyName */
            ifnull 19
        13: .line 527
            aload 4 /* el */
            invokeinterface io.ebeaninternal.server.el.ElPropertyValue.isAssocProperty:()Z
            istore 6 /* assocProperty */
        start local 6 // boolean assocProperty
        14: .line 528
            iload 6 /* assocProperty */
            ifne 17
        15: .line 529
            aload 1 /* pathProps */
            aconst_null
            aload 3 /* propertyName */
            invokevirtual io.ebean.text.PathProperties.addToPath:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 530
            goto 19
        17: .line 531
      StackMap locals: int
      StackMap stack:
            aload 3 /* propertyName */
            invokestatic io.ebean.util.SplitName.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* pathProp */
        start local 7 // java.lang.String[] pathProp
        18: .line 532
            aload 1 /* pathProps */
            aload 7 /* pathProp */
            iconst_0
            aaload
            aload 7 /* pathProp */
            iconst_1
            aaload
            invokevirtual io.ebean.text.PathProperties.addToPath:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.lang.String[] pathProp
        end local 6 // boolean assocProperty
        19: .line 535
      StackMap locals:
      StackMap stack:
            return
        end local 5 // io.ebeaninternal.server.deploy.BeanProperty beanProperty
        end local 4 // io.ebeaninternal.server.el.ElPropertyValue el
        end local 3 // java.lang.String propertyName
        end local 2 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column column
        end local 1 // io.ebean.text.PathProperties pathProps
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0   20     1      pathProps  Lio/ebean/text/PathProperties;
            0   20     2         column  Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping$Column;
            0   20     3   propertyName  Ljava/lang/String;
            0   20     4             el  Lio/ebeaninternal/server/el/ElPropertyValue;
            1   20     5   beanProperty  Lio/ebeaninternal/server/deploy/BeanProperty;
           10   12     6            msg  Ljava/lang/String;
           14   19     6  assocProperty  Z
           18   19     7       pathProp  [Ljava/lang/String;
    MethodParameters:
              Name  Flags
      pathProps     
      column        
      propertyName  
      el            

  private java.lang.String assocOneIdPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String propertyName
         0: .line 541
            new java.lang.StringBuilder
            dup
            aload 1 /* propertyName */
            iconst_0
            aload 1 /* propertyName */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".id"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  private io.ebean.config.dbplatform.SqlLimitResponse buildSql(java.lang.String, io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates, io.ebeaninternal.server.query.SqlTree);
    descriptor: (Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String selectClause
        start local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 4 // io.ebeaninternal.server.query.SqlTree select
         0: .line 548
            aload 2 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            astore 5 /* query */
        start local 5 // io.ebeaninternal.api.SpiQuery query
         1: .line 549
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isNativeSql:()Z
            ifeq 3
         2: .line 550
            new io.ebean.config.dbplatform.SqlLimitResponse
            dup
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getGeneratedSql:()Ljava/lang/String;
            invokespecial io.ebean.config.dbplatform.SqlLimitResponse.<init>:(Ljava/lang/String;)V
            areturn
         3: .line 552
      StackMap locals: io.ebeaninternal.api.SpiQuery
      StackMap stack:
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.isRawSql:()Z
            ifeq 5
         4: .line 553
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.rawSqlHandler:Lio/ebeaninternal/server/query/CQueryBuilderRawSql;
            aload 2 /* request */
            aload 3 /* predicates */
            aload 5 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getRawSql:()Lio/ebeaninternal/server/rawsql/SpiRawSql;
            invokeinterface io.ebeaninternal.server.rawsql.SpiRawSql.getSql:()Lio/ebeaninternal/server/rawsql/SpiRawSql$Sql;
            invokevirtual io.ebeaninternal.server.query.CQueryBuilderRawSql.buildSql:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/rawsql/SpiRawSql$Sql;)Lio/ebean/config/dbplatform/SqlLimitResponse;
            areturn
         5: .line 555
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.server.query.CQueryBuilder$BuildReq
            dup
            aload 0 /* this */
            aload 1 /* selectClause */
            aload 2 /* request */
            aload 3 /* predicates */
            aload 4 /* select */
            invokespecial io.ebeaninternal.server.query.CQueryBuilder$BuildReq.<init>:(Lio/ebeaninternal/server/query/CQueryBuilder;Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)V
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder$BuildReq.buildSql:()Lio/ebean/config/dbplatform/SqlLimitResponse;
            areturn
        end local 5 // io.ebeaninternal.api.SpiQuery query
        end local 4 // io.ebeaninternal.server.query.SqlTree select
        end local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 1 // java.lang.String selectClause
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    6     1  selectClause  Ljava/lang/String;
            0    6     2       request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0    6     3    predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0    6     4        select  Lio/ebeaninternal/server/query/SqlTree;
            1    6     5         query  Lio/ebeaninternal/api/SpiQuery<*>;
    Signature: (Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
    MethodParameters:
              Name  Flags
      selectClause  
      request       
      predicates    
      select        

  private io.ebean.config.dbplatform.SqlLimitResponse buildSqlDelete(java.lang.String, io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates, io.ebeaninternal.server.query.SqlTree);
    descriptor: (Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String selectClause
        start local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 4 // io.ebeaninternal.server.query.SqlTree select
         0: .line 559
            new io.ebeaninternal.server.query.CQueryBuilder$BuildReq
            dup
            aload 0 /* this */
            aload 1 /* selectClause */
            aload 2 /* request */
            aload 3 /* predicates */
            aload 4 /* select */
            invokespecial io.ebeaninternal.server.query.CQueryBuilder$BuildReq.<init>:(Lio/ebeaninternal/server/query/CQueryBuilder;Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)V
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder$BuildReq.buildSql:()Lio/ebean/config/dbplatform/SqlLimitResponse;
            areturn
        end local 4 // io.ebeaninternal.server.query.SqlTree select
        end local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 1 // java.lang.String selectClause
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1  selectClause  Ljava/lang/String;
            0    1     2       request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0    1     3    predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0    1     4        select  Lio/ebeaninternal/server/query/SqlTree;
    Signature: (Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
    MethodParameters:
              Name  Flags
      selectClause  
      request       
      predicates    
      select        

  private io.ebean.config.dbplatform.SqlLimitResponse buildSqlUpdate(java.lang.String, io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.CQueryPredicates, io.ebeaninternal.server.query.SqlTree);
    descriptor: (Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // java.lang.String selectClause
        start local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        start local 4 // io.ebeaninternal.server.query.SqlTree select
         0: .line 563
            new io.ebeaninternal.server.query.CQueryBuilder$BuildReq
            dup
            aload 0 /* this */
            aload 1 /* selectClause */
            aload 2 /* request */
            aload 3 /* predicates */
            aload 4 /* select */
            iconst_1
            invokespecial io.ebeaninternal.server.query.CQueryBuilder$BuildReq.<init>:(Lio/ebeaninternal/server/query/CQueryBuilder;Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;Z)V
            invokevirtual io.ebeaninternal.server.query.CQueryBuilder$BuildReq.buildSql:()Lio/ebean/config/dbplatform/SqlLimitResponse;
            areturn
        end local 4 // io.ebeaninternal.server.query.SqlTree select
        end local 3 // io.ebeaninternal.server.query.CQueryPredicates predicates
        end local 2 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 1 // java.lang.String selectClause
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    1     1  selectClause  Ljava/lang/String;
            0    1     2       request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0    1     3    predicates  Lio/ebeaninternal/server/query/CQueryPredicates;
            0    1     4        select  Lio/ebeaninternal/server/query/SqlTree;
    Signature: (Ljava/lang/String;Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/CQueryPredicates;Lio/ebeaninternal/server/query/SqlTree;)Lio/ebean/config/dbplatform/SqlLimitResponse;
    MethodParameters:
              Name  Flags
      selectClause  
      request       
      predicates    
      select        

  boolean isPlatformDistinctOn();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
         0: .line 779
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            getstatic io.ebean.annotation.Platform.POSTGRES:Lio/ebean/annotation/Platform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.isPlatform:(Lio/ebean/annotation/Platform;)Z
            ireturn
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryBuilder;

  java.lang.String fromForUpdate(io.ebeaninternal.api.SpiQuery<?>);
    descriptor: (Lio/ebeaninternal/api/SpiQuery;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryBuilder this
        start local 1 // io.ebeaninternal.api.SpiQuery query
         0: .line 786
            aload 1 /* query */
            invokeinterface io.ebeaninternal.api.SpiQuery.getForUpdateLockWait:()Lio/ebean/Query$LockWait;
            astore 2 /* mode */
        start local 2 // io.ebean.Query$LockWait mode
         1: .line 787
            aload 2 /* mode */
            ifnonnull 3
         2: .line 788
            aconst_null
            areturn
         3: .line 790
      StackMap locals: io.ebean.Query$LockWait
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryBuilder.dbPlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            aload 2 /* mode */
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.fromForUpdate:(Lio/ebean/Query$LockWait;)Ljava/lang/String;
            areturn
        end local 2 // io.ebean.Query$LockWait mode
        end local 1 // io.ebeaninternal.api.SpiQuery query
        end local 0 // io.ebeaninternal.server.query.CQueryBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lio/ebeaninternal/server/query/CQueryBuilder;
            0    4     1  query  Lio/ebeaninternal/api/SpiQuery<*>;
            1    4     2   mode  Lio/ebean/Query$LockWait;
    Signature: (Lio/ebeaninternal/api/SpiQuery<*>;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      query  
}
SourceFile: "CQueryBuilder.java"
NestMembers:
  io.ebeaninternal.server.query.CQueryBuilder$BuildReq
InnerClasses:
  public final LockWait = io.ebean.Query$LockWait of io.ebean.Query
  public Props = io.ebean.text.PathProperties$Props of io.ebean.text.PathProperties
  public final TemporalMode = io.ebeaninternal.api.SpiQuery$TemporalMode of io.ebeaninternal.api.SpiQuery
  private BuildReq = io.ebeaninternal.server.query.CQueryBuilder$BuildReq of io.ebeaninternal.server.query.CQueryBuilder
  public final ColumnMapping = io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping of io.ebeaninternal.server.rawsql.SpiRawSql
  public Column = io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping$Column of io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping
  public final Sql = io.ebeaninternal.server.rawsql.SpiRawSql$Sql of io.ebeaninternal.server.rawsql.SpiRawSql