if (iLinkedRecord.getDatabase() == null && iParentRecord != null)
// OVERWRITE THE DATABASE TO THE SAME OF THE PARENT ONE
iLinkedRecord.setDatabase(iParentRecord.getDatabase());
if (iLinkedRecord instanceof ODocument) {
final OClass schemaClass = ((ODocument) iLinkedRecord).getSchemaClass();
iLinkedRecord.getDatabase().save(iLinkedRecord,
schemaClass != null ? iLinkedRecord.getDatabase().getClusterNameById(schemaClass.getDefaultClusterId()) : null);
} else
// STORE THE TRAVERSED OBJECT TO KNOW THE RECORD ID. CALL THIS VERSION TO AVOID CLEAR OF STACK IN THREAD-LOCAL
iLinkedRecord.getDatabase().save(iLinkedRecord);
iLinkedRecord.getDatabase().registerPojo(iLinkedRecord.getDatabase().getUserObjectByRecord(iLinkedRecord, null),