Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.06 KB

dataSourceNamespaces.adoc

File metadata and controls

44 lines (33 loc) · 1.06 KB

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%')
}