Uday Pratap Singh

I am Uday Pratap Singh, a Groovy Follower, Grails Learner, and Spock Lover working at TO THE NEW in technology division. Please go through my blog posts below


Discriminator in Grails inheritance

Whenever I have the use case of inheritance in my Grails application I prefer to have the single table for all the classes, to avoid joins and multiple save statement. But one thing I dont like about this is its class discriminator which have the full class name in it. I dont find it much readable when looking into the sql.   ...



Inheritance in Grails

In Grails, we can have inheritance with the abstract base class as well as persistent base class. Lets take an example to explain this.(All the classes are in the package com.intelligrape.example) [java] class Blog{ String authorName static constraints = { authorName (nullable:false) } } class TextBlog ...



Pre populating database in phonegap app

Currently I am working on developing mobile app using Phonegap. Phonegap comes up with very nice javascript methods to access phone specific api and the developer like me who have fair knowledge of javascript HTML and CSS can learn it very quickly. My app required bundling the database into the app but there is no straight forward way...



Optimistic locking strategy in Grails

In Grails optimistic locking is achieved by version property . The Grails Domain classes has a built in property called "version". This property can be used for optimistic locking. Although you can remove this property [java] static mapping ={ version false } [/java] but its not a very good practice. The initial value of...



Grails 2.1 command line alias

I am a linux user and like to do everything on command line, I find it more productive. Anytime I need to write long command or use any command frequently, I always create an alias for that, for example while running the test cases I need to run the command so I created alias for this in my bashrc [java] alias testunit='grails...



Setting default layout in Grails application

Grails uses Sitemesh for adding layout to the views. Layouts are located in layouts folder and to add layouts to the view we generally add any of the following line in head [java] <g:applyLayout name="layoutName"/> or <meta name="layout" content="layoutName" /> [/java] But most of the time...



Grails 2.0 action arguments data binding

One feature that I really like in Grails 2.0 is action arguments databinding. While reading more about it I also found a nice grails.web.RequestParameter annotation. When you know something you always find its use case. In my recent project I need to take radius and height as params for creating a cylinder so my action looks like [java] ...



Groovy annotations for ToString and EqualsAndHashCode

As I am a lazy programmer most of the time I dont implement toString and equals methods on my grails domain classes. I would like to say thanks to Groovy for helping me out and giving me a ready made recipe for this. Now I just need to annotate my class with ToString and EqualAndHashCode annotation it adds appropriate implementation of...



Log Sql in grails for a piece of code

There are time when we need to see the sql logging statement just for a method of for a particular code. Although we already have logSql property in DataSource to do it for us but it sometimes makes difficult if we need to see the log for a small piece of code rather than for whole project. So I need something that will execute my code...



Annotation for checking required session fields

Recently I worked on a project where I used spring security plugin. Its a very wonderful plugin for making your application secured from unauthorized users. It gives you a simple annotation @Secured to add security to your action and controller. Thats the first time I got to know the real use case of annotation. So I started reading about...



Grails console plugin gotcha

Grails console plugin is one of those which I always add to my projects. It really gives you a very handy way of debugging things and also run some quick fixes. Whenever you hit the console action you always gets a predefined message on it about the available variables, which is really good when you are a new user but in most of the...



Inject custom validation errors in object

Reading the grails docs is like my habit, they always enhances your learning. Today I was going through the grails docs again and I found a very good way of showing some custom error messages. As I saw it I found the use case in one of my project that could be refactored by this approach There are use cases where we need to show some...