Esempio n. 1
0
        /// <summary>
        /// For an entity class, add to a list of associations to be fetched
        /// by outerjoin
        /// </summary>
        protected virtual void WalkEntityTree(IOuterJoinLoadable persister, string alias, string path, int currentDepth)
        {
            int n = persister.CountSubclassProperties();

            for (int i = 0; i < n; i++)
            {
                IType type = persister.GetSubclassPropertyType(i);
                ILhsAssociationTypeSqlInfo associationTypeSQLInfo = JoinHelper.GetLhsSqlInfo(alias, i, persister, Factory);
                if (type.IsAssociationType)
                {
                    WalkEntityAssociationTree((IAssociationType)type, persister, i, alias, path,
                                              persister.IsSubclassPropertyNullable(i), currentDepth, associationTypeSQLInfo);
                }
                else if (type.IsComponentType)
                {
                    WalkComponentTree((IAbstractComponentType)type, 0, alias, SubPath(path, persister.GetSubclassPropertyName(i)),
                                      currentDepth, associationTypeSQLInfo);
                }
            }
        }
Esempio n. 2
0
		/// <summary>
		/// For an entity class, add to a list of associations to be fetched
		/// by outerjoin
		/// </summary>
		protected virtual void WalkEntityTree(IOuterJoinLoadable persister, string alias, string path, int currentDepth)
		{
			int n = persister.CountSubclassProperties();
			for (int i = 0; i < n; i++)
			{
				IType type = persister.GetSubclassPropertyType(i);
				ILhsAssociationTypeSqlInfo associationTypeSQLInfo = JoinHelper.GetLhsSqlInfo(alias, i, persister, Factory);
				if (type.IsAssociationType)
				{
					WalkEntityAssociationTree((IAssociationType) type, persister, i, alias, path,
					                          persister.IsSubclassPropertyNullable(i), currentDepth, associationTypeSQLInfo);
				}
				else if (type.IsComponentType)
				{
					WalkComponentTree((IAbstractComponentType) type, 0, alias, SubPath(path, persister.GetSubclassPropertyName(i)),
					                  currentDepth, associationTypeSQLInfo);
				}
			}
		}
Esempio n. 3
0
		/// <summary>
		/// For an entity class, add to a list of associations to be fetched
		/// by outerjoin
		/// </summary>
		private void WalkEntityTree(IOuterJoinLoadable persister, string alias, string path, int currentDepth)
		{
			int n = persister.CountSubclassProperties();
			for (int i = 0; i < n; i++)
			{
				IType type = persister.GetSubclassPropertyType(i);
				if (type.IsAssociationType)
				{
					WalkEntityAssociationTree((IAssociationType)type, persister, i, alias, path,
																		persister.IsSubclassPropertyNullable(i), currentDepth);
				}
				else if (type.IsComponentType)
				{
					WalkComponentTree((IAbstractComponentType)type, i, 0, persister, alias,
														SubPath(path, persister.GetSubclassPropertyName(i)), currentDepth);
				}
			}
		}