| Person entity references one Nickname entity having foreign key on delete set null. If Person _entity is stored in second level cache and her _Nickname entity is deleted by a native query, then the reference id is set to null in database, but the cached Person entity still has the old reference id. Loading the Person from second level cache (entitymanager.find) tries to load the old Nickname that doesn't exist, throws EntityNotFoundException that cascades and ultimately returns a null Person object. Person entity still exists in database and should have been found and the invalid reference should be resolved somehow (maybe recheck in database). |