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:
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:
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:
def results = ZipCode.where {
code ==~ '995%'
}.withConnection('auditing').list()
or Criteria
queries:
def c = ZipCode.auditing.createCriteria()
def results = c.list {
like('code','995%')
}