Comment on page
Query Options
Each query execution method allows for the passing of an options struct. This is the same struct you would pass to
queryExecute
.qb allows you to specify default options when creating the QueryBuilder instance using the
defaultOptions
argument.You can set
defaultOptions
for the default QueryBuilder (QueryBuilder@qb
) in your config/ColdBox.cfc
file under moduleSettings
.moduleSettings = {
"qb": {
"defaultOptions": {
"timeout": 60
}
}
};
You can also combine this with WireBox to create custom QueryBuilder instances pointing to different datasources and even different grammars.
When mapping to components provided by modules, such as qb, use the
afterAspectsLoad
interception point inside your config/WireBox.cfc
to ensure all modules are fully loaded and available.config/WireBox.cfc
component {
function afterAspectsLoad() {
binder.map( "MyCustomQueryBuilder" )
.to( "qb.models.Query.QueryBuilder" )
.initArg( name = "grammar", ref = "AutoDiscover@qb" )
.initArg( name = "defaultOptions", value = {
"datasource": "my_custom_datasource"
} );
}
}
In
Application.cfc
you can specify your default datasource which will be used by qb. If you want to retrieve data from other datasources you can specify this in all retrieval functions by using the extra options parameter such as:QueryBuilder
query.from( "users" )
.get( options = { datasource: "MyOtherDatasourceName" } );
If you also want to use a non-default SQL Grammar you have to specify this when creating your
QueryBuilder
.QueryBuilder
var query = wirebox.getInstance( "QueryBuilder@qb" )
.setGrammar( wirebox.getInstance( "SqlServerGrammar@qb" ) );
Last modified 6mo ago