Premature optimization is evil - but could not resist here ;-) 

UUID.randomUUID() is quite expensive operation, wouldn't it be possible to skip generation for entity creation when field is actually retrieved from DB? Same holds for other UUID generations.