-
Enterprise Java
Hibernate collections optimistic locking
Introduction Hibernate provides an optimistic locking mechanism to prevent lost updates even for long-conversations. In conjunction with an entity storage,…
Read More » -
Enterprise Java
Hibernate application-level repeatable reads
Introduction In my previous post I described how application-level transactions offer a suitable concurrency control mechanism for long conversations. All…
Read More » -
Software Development
MongoDB Incremental Migration Scripts
Introduction An incremental software development process requires an incremental database migration strategy. I remember working on an enterprise application where…
Read More » -
Software Development
Integration testing done right with Embedded MongoDB
Introduction Unit testing requires isolating individual components from their dependencies. Dependencies are replaced with mocks, which simulate certain use cases.…
Read More » -
Software Development
Logical vs physical clock optimistic locking
Introduction In my previous post I demonstrated why optimistic locking is the only viable solution for application-level transactions. Optimistic locking…
Read More » -
Software Development
The fastest way of drawing UML class diagrams
A picture is worth a thousand words Understanding a software design proposal is so much easier once you can actually…
Read More » -
Software Development
Preventing lost updates in long conversations
Introduction All database statements are executed within the context of a physical transaction, even when we don’t explicitly declare transaction…
Read More » -
Software Development
A beginner’s guide to database locking and the lost update phenomena
Introduction A database is highly concurrent system. There’s always a chance of update conflicts, like when two concurring transactions try…
Read More » -
Enterprise Java
Hibernate bytecode enhancement
Introduction Now that you know the basics of Hibernate dirty checking, we can dig into enhanced dirty checking mechanisms. While…
Read More »