boolean recursiveLoading(Object obj) {
		if (recursiveLoadingPolicyDefined) {
			synchronized (recursiveLoadingPolicy) {
				Class type = obj.getClass();

				do {
					Object enabled = recursiveLoadingPolicy.get(type);

					if (enabled != null) {
						return ((Boolean) enabled).booleanValue();
					}
				}
				while ((type = type.getSuperclass()) != null);
			}
		}

		return (obj instanceof IPersistent) ? ((IPersistent) obj)
				.recursiveLoading() : true;
	}