I don't think the JPA spec clearly describes what should happen when an @Embedded
object's properties are all null, but at least some implementations treat an object with null properties as a null object, which is what you're seeing.
This seems like a reasonable implementation. Certainly it's been useful in my code (using Hibernate) where if I set an @Embedded
object to null I want it to remain null when I load a persisted version.
In your example, the AutoInstantiated
class can never be considered null, since the primitive property theKey
can never be null.