Use setPrimitiveValue:forKey: in -[SPManagedObject willSave]
Call [super willSave]
Create ghost in an on-demand get accessor instead of within awakeFromFetch