Skip to main content

Type safe hibernate criteria

Here is a cool thing I figured out today to use type safe property name in hibernate criteria. Typically this is done with strings, but with lambdaj, it can be done as:



..
import static ch.lambdaj.Lambda.on;
import ch.lambdaj.function.argument.Argument;
import ch.lambdaj.function.argument.ArgumentsFactory;
..
DetachedCriteria criteria = DetachedCriteria.forClass(Contract.class);
criteria.add(Restrictions.eq(propertyName(on(Contract.class).getContractKey()), 43));
...

public static String propertyName(Object placeHolder) {
Argument actualArgument = ArgumentsFactory.actualArgument(placeHolder);
return actualArgument.getInkvokedPropertyName();
}
...


Notice how the Restrictions does not take string literal and uses lambdaj to evaluate the property name from java method directly. Pretty cool ah?

Comments

Popular posts from this blog

Automate SQL Dumps for SQLServer

The backup mechanism in SQL Server may be fine for many cases, but there are limitations with it (like restoring to a different server). I really like how I can just dump the database SQL with mySQL which can be easily processed with custom scripts. I was looking around for a mysqldump equivalent for SQLServer. I know you can do this with the SQL Management Studio through GUI in 2008 version, but I need this to be automated. This lead me to discover the SQL Server Management API . With it, you can do a SQL Dump like: using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Sdk.Sfc; namespace SQLGenerator { class Program { static void Main(string[] args) { //Connect to the local, default instance of SQL Server. { Server myServer = new Server(args[0]); Database db = default(Database); db = myServer.Databases["be"]; ...

Eclipse issues with JDK 1.6 update 21

A lot of users seem to be having issues running Eclipse with the latest update of Java from Sun/Oracle. Apparently they changes the metadata in the dll that shows Oracle instead of Sun. Here are the details and workarounds to fix it: https://bugs.eclipse.org/bugs/show_bug.cgi?id=319514

Blame it on the Genes

I was just randomly watching a PBS Nova show today Ah ha.. that figures. When I was growing up, my parents had a big issue with me for now eating enough greens. For me, I just could not stand certain green vegetables for their bitter taste but my dad loved eating those - and forcing me to like them too. How I wish I could have told them to blame it on the genes!