Hibernate Save method practice
Your finally should strive to be as safe as it can, since you may have already had some error occur. To that end, you could run into trouble with a null pointer:

} finally {
    if (session.isOpen()) {
        session.close();
    }
}


If session is null then you've just caused another error, so test session before you call on it:

} finally {
    if (session != null &amp;&amp; session.isOpen()) {
        session.close();
    }
}