Oh another question about same thing, any clue how hibernates can still set the values to the val's that default to null. I am curious, as I just tried making a class with val and a default, and I can't set it to something else for obvious reasons. Reading some answers on SO they mention that hibernate first uses default constructor through reflection then sets values, but I am clueless how they do it with vals.