See my PR on DoctrinePHPCRBundle, there I have to check isset because it is only set for "ordinary" fields (the code you reference is in mapField I think) but not e.g. for the nodename. The ORM's ClassMetadata has a isNullable method that would abstract that difference.