
If a domain class uses more than one `DataSource` then you can use the namespace implied by each `DataSource` name to make GORM calls for a particular `DataSource`. For example, consider this class which uses two `DataSource` instances:

[source,groovy]
----
class ZipCode {

   String code

   static mapping = {
      datasources(['lookup', 'auditing'])
   }
}
----

The first `DataSource` specified is the default when not using an explicit namespace, so in this case we default to 'lookup'. But you can call GORM methods on the 'auditing' `DataSource` with the `DataSource` name, for example:

[source,groovy]
----
def zipCode = ZipCode.auditing.get(42)
...
zipCode.auditing.save()
----

As you can see, you add the `DataSource` to the method call in both the static case and the instance case.

You can use `Where` queries:

[source,groovy]
----
def results = ZipCode.where {
    code ==~ '995%'
}.withConnection('auditing').list()
----

or `Criteria` queries:

[source,groovy]
----
def c = ZipCode.auditing.createCriteria()
def results = c.list {
    like('code','995%')
}
----
