Quote: The Top of my Todo List

Posted by Jens Jäger on May 03, 2012

  • Don’t ignore your dreams.
  • Don’t work too much.
  • Say what you think.
  • Cultivate friendships.
  • Be happy.

Paul Graham – The Top of my Todo List

Hibernate relations and event listeners 1

Posted by Jens Jäger on January 24, 2012

In my current project I work on a Java EE application with a hibernate backend. The applications supports two databases MSSql and Oracle. The development started with MSSql. One of my tasks was to migrate the application to Oracle. We expected some problems with Spring ACLs which uses SQL instead of OR Mapping. To fix that I just had to write some custom SQL for Oracle.

After handling the ACLs I got transaction problems with oracle, we hadn’t with MSSql. After some tests and research I found out that to fix this I had to add a entityManager.flush(); to the persist and merge method of our entity manager. I was happy to resolved the issue an started our test suite.

Then I run into an exception like this:

I got this exception on our local H2-database on MSSql and Oracle. After some research I found this issue in the hibernate Jira:

HHH-2763: Allow initialization during flush

In the first place I ignored it because the entry was from 2007. After some more research and some tests I found out that our problem looked similar to the issue reported to hibernate. We had relations and we had listeners in the form of PrePersistCallbacks and PreUpdateCallbacks. I couldn’t believe that an issue from 2007 was still not fixed.

My next step was to write a test case to reproduce the error. The test case is very domain specific so I can’t post it here.

I found out that the bug was already fixed in grails. With this knowledge it was easy to came to this solution:

To make this work in our application I had to add this spring configuration to our applicationContext-datasource.xml:

The problem occurred with Hibernate 3.6.7.Final which was the latest stable release by the time I run into it. It should be fixed in Hibernate 4.0.0.Final or later which final release was in december.

4Gewinnt Vanilla for iOS

Posted by Jens Jäger on January 18, 2012

Christoph just released his first iOS game. A awesome iOS implementation of connect four called 4Gewinnt Vanilla. On the strongest game level there is almost no chance to win against the computer. But in the middle levels it’s a perfect entertaining game.

The app is designed for both iPhone and iPad and available in the app store:

4Gewinnt Vanilla in the app store

Article published in OBJEKTspektrum

Posted by Jens Jäger on January 17, 2012

Together with André I wrote an article for the german computer journal Objektspektrum. The article with the name “Code-Flavours: Nützliche Java-Idiome” is published in the current issue.

A code flavour is the opposite of a code smell. Similar to anti-pattern v.s. design pattern. In the article we discuss some useful code flavours for the java programming language. The concepts might work for other languages to.

You can order the issue of object spectrum here or just buy the article as a pdf version here.

It’s all about the user interface 1

Posted by Jens Jäger on January 14, 2012

To get better at developing user interfaces, I decided last year to learn more about javascript. Like most developers I already used javascript for years, but never invested the time to “really” learn the language.

Studying a language works best for me when I have a serious project to develop. After surfing around I came up with the idea to extract the travel map I developed for journizer.com to a Autobahn81 product for sale.

The new version of the google api is not compatible with the old one. So the new travel map item was developed nearly from scratch. The guys at google did a really great job improving the api. On of the best things on Gmaps api V3 is, that you don’t need an api key anymore.

Travel map pro makes it super easy to include a a google maps based travel map on your website. The live preview of travel map pro is available here. The photoshop items for the markers and a great documentation is included. You can buy it as travel map pro javascript or travel map pro php for some dollars.