Imran Mir


First experience with Google App Engine

A few days back I had chance to work on a googleApp using GORM-JPA plugin,version (0.7.1). I came across a few problems which are as given below. Consider the domain : Country -> has many States. At first it appeared that the one to many relationships are to be managed using annotations like : Country { @OneToMany(mappedBy...



Grails unit testing for beginners

Ques: How is unit testing different from integration testing ? Ans: Integration tests need to bring up the whole grails environment.They talk to the database. All the dynamic GORM methods and properties are available here. Unit testing are small focused, fast loading tests that do not load supporting components. Ques: How can I unit...



Unit-Tests : Getting started with Service Unit Test

Hi all, Here I am giving a brief introduction about unit testing of services in grails. I will explain it with the help of a simple example. We have a domain class named: Item Two services : UtilService and ItemService Code of UtilService.groovy // class UtilService code class UtilService { boolean transactional =...



Ordering using Grails CreateCriteria

Recently, in my project I had to implement search functionality. I used grails createCriteria to implement it.Now I needed to apply the sorting on the result returned. My domain was something like this : class MyEntity { OrganizationName orgName PersonName personName static constraints = { ...



Tracking Errors/Exceptions during ajax calls in a view

If you want to keep track of the errors and exceptions on the view, after making an ajax call, then this might be something of your interest : jQuery().ready(function() { jQuery.ajaxSetup({ error: function(x, e) { if (x.status == 0) { alert('You are offline!!\n Please Check Your Network.'); } else if...



Implementing Delay Between Ajax Calls

Implementing search functionality on the keyup event using ajax has one pitfall. It can bombard our server with unnecessary ajax calls. So it becomes imperative for us to introduce some delay between the ajax calls. One way to implement it will be to make an ajax call after some delay(say 500 ms) after the first character has been typed...



Batch Processing In Grails

In one of my project assignments I needed to insert large number of records into the database. I had to read the objects from an external source. Once I read all of the objects into a List, I iterated the list to save each one of them individually. In the beginning the process carried on fine but as the time passed the execution slowed...



Command Objects

What is a command object ? Command object is a non persistent class used for data-validation. The main advantage of using the Command objects is that we can validate those forms that do not map to the domain class. Where to define command object ? You can define command classes in the grails-app/controllers directory or even in...