Sunday, 17 September 2017

Spring 5 and HSQLDB sample app

Recently I have played a bit with Spring 5 and embedded database HSQLDB. It is very not usual for me to create Spring app even without single xml. Also I used cool library called Lombok it provides auto getter/setter generation.

What was interesting for me that spring-boot auto configure for you following features: mvc, transactions, json serialization, jpa, tests. It has even embedded tomcat)

Here is my github repository

Thursday, 15 June 2017

A different object with the same identifier value was already associated with the session

Hibernate Error: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session

What is the reason of such exception?


Session already contains object that you are trying to put there one more time  with such identifier (for example with update). It also could be many-to-one  or one-to-many relationship object or cascading operation.


How to deal with it?

  • probably you already called update() for this object, and trying do this 2nd time
  • another possible reason you making copy of the object that is already associated with session (has assigned id and was loaded recently) and trying to update it
  • try session.merge() - it will copy the state of the given object into the persistent object with the same identifier.
  • try session.evict(object) - remove this instance from the session cache.

Sunday, 11 June 2017

Domain Driven Design in Java

I think most enterprise java world is suffering  from Anemic Domain Model. One of the ways that can help you is DDD. I've started researching DDD area, and I've found couple of good books and sources for them:

Implementing Domain-Driven Design by Vaughn Vernon (I think it is good to start book)

and source code is here : https://github.com/VaughnVernon/IDDD_Samples

And one more book called Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans 

and source code is here: https://github.com/citerus/dddsample-core

Monday, 13 March 2017

Free Java hosting options and Heroku tomcat deployment

I wanted to write some java app that would communicate with 3rd party API. The main problem there was that this API requires https connection. So I needed free java hosting to test my concept.

I will describe my short research about free java hosting proposals. And will describe shortly Heroku quick start.

Saturday, 4 March 2017

The top of most mentioned books on stackoverflow.com

Top 5:
#1 Working Effectively with Legacy Code
Michael C. Feathers
#2 Design Patterns
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
#3 Clean Code
Robert C. Martin
#4 Java concurrency in practice
Brian Goetz, Tim Peierls
#5 Domain-driven Design
Eric Evans

See more here http://www.dev-books.com/

Thursday, 16 February 2017

Scrum in few words

Note about scrum. It is mostly based on Scum Guide but in much shorter way and with some examples from my experience.

Wednesday, 8 February 2017

Spring Transactions management tips

In this article I will describe ways of managing transactions in Spring. And will share some useful notes based on my experience