Monday, November 25, 2013

Oracle's XMLTYPE with Hibernate 4

    XML is quite popular nowadays. You can store XML as a VARCHAR type in a DB. However, it has some limitations, e.g. you cannot perform XPath DB queries on a VARCHAR. Oracle DB comes with XML dedicated type - XMLTYPE that allows to perform XPath queries, has XML validation logic built-in and some storage optimizations. On the contrary, Hibernate does not support XMLTYPE out of the box. We need to define our custom UserType.

Tuesday, November 5, 2013

Robust DB connection pool configuration

    Martin Fowler claims: 'Any fool can write code that a computer can understand. Good programmers write code that humans can understand'. I would add: 'Any fool can write code that survives a happy path'. Some time ago I posted a data source configuration for H2 DB. Was the configuration really robust?

Monday, October 14, 2013

Error codes - underscore in numeric literals

    Java 7 introduced a bunch of language improvements (known as Project Coin). One of the improvement that I want to focus on is an underscore in numeric literals.

Friday, October 11, 2013

Can the 'new' keyword be harmful?

    I've heard somewhere that nowadays the object creation in Java is cheap. Every Java Developer knows the 'new' keyword and its purpose. However, does every Java Developer think about the consequences that are related to that keyword?

Friday, September 27, 2013

The Law of Demeter will tell you the truth

    The Law of Demeter (LoD) is well-known in object oriented programming. Can we get to know something unusual from that principle?

Tuesday, September 3, 2013

Hibernate configuration example with in-memory H2 DB for ad-hoc testing

    Sometimes I like to play a little bit with Hibernate. I do not want to spend much time on configuration or DB schema creation so I keep prepared piece of code.

Saturday, August 31, 2013

@PrePersist and @PreUpdate - not working with Hibernate 4 Session and Spring

    @PrePersist and @PreUpdate annotations have their roots in JPA specification. Hibernate implements JPA specification. However, if we decide to use SessionFactory and Session instead of EntityManagerFactory and EntityManager, we will realize that mentioned annotations are ignored. Is there a way to solve the problem?

Saturday, August 10, 2013

IntelliJ - GIT push problem

    IntelliJ seems to be an interesting IDE, however recently I had an issue related to it's GIT plugin.

Saturday, July 27, 2013

Contextual session-local Hibernate interceptor with Spring

    Hibernate interceptor can be used for various purposes, e.g. audit trail, simple logging of persistent operations. However, we should have on our minds the fact that Hibernate SessionFactory level interceptor has to be implemented in a thread-safe manner, because it will be shared among all of the sessions. Is there any way to implement the interceptor with single-thread programming model?

Saturday, July 6, 2013

EJB vs. Spring thread safety

    EJB and Spring are capable of providing ecosystem for the implementation of business services. EJB is more specific in its purpose whereas Spring brings us a great deal of flexibility. Can the freedom of Spring be dangerous?