public Where < T , ID > raw ( String rawStatement , ArgumentHolder ... args ) { for ( ArgumentHolder arg : args ) { String columnName = arg . getColumnName ( ) ; if ( columnName == null ) { if ( arg . getSqlType ( ) == null ) { throw new IllegalArgumentException ( "Either the column name or SqlType must be set on each argument" ) ; } } else { arg . setMetaInfo ( findColumnFieldType ( columnName ) ) ; } } addClause ( new Raw ( rawStatement , args ) ) ; return this ; }
Add a raw statement as part of the where that can be anything that the database supports . Using more structured methods is recommended but this gives more control over the query and allows you to utilize database specific features .