Consider the following domain models:
class Sales{
String salesInvoice
Customer customer
}
class Customer{
int customerNumber
String name
}
The problem: I am trying to retrieve all the sales given a customer. Thus the code:
def sales = Sales.findAllByCustomer(Customer.get(params.id))
I don’t have problem with getting the customer. But when I use println sales.dump() I get something like
<java.util.ArrayList@d3a25f8 elementData=[mypackage.Sales : null, mypackage.Sales : null] size=2 modCount=3>
If I understand correctly, this means that the query was able to get a list of Sales but what I don’t quite understand is why is it returning a list of nulls? I’ve tried eager fetching but I don’t think that will work in this particular problem. So how to I get a list of non-null Sales objects?
The objects you have shown are not NULL, but the
idof the objects is currently NULL: Each grails domain object has atoString()method which will print${name of the class} : ${id of the instance}. If you receive outputs, like you have shown, it generally means, that your instances are existing (otherwise a NPE would have been thrown!), however the id is not yet fetched from the DB.Salebelongs to aCustomer. http://grails.org/doc/latest/guide/GORM.html#manyToOneAndOneToOneBTW: Name you domain classes in singular. So rename
SalestoSale.