blob: 4de910ded3490d40eccd04514ef89fd51cf9f81e [file] [log] [blame]
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%')
}
----