add hasOne relation support