kreta/Tools/CodeGeneration/Templates/Server/DataAccess/DBCommands/LoadCommands.tdl
2024-03-13 00:33:46 +01:00

505 lines
28 KiB
Text

//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás összes attribútumát //
// tartalmazza. (a rendszerattribútumokat nem generálja le!) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAttributesCommandColumns(MClass as ENTITY, PREFIX)
[loop (ENTITY -> MAttribute as ATTRIBUTE)]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName([ATTRIBUTE.name])] ""[PREFIX][ATTRIBUTE.name]"",
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesCommandColumns([BASECLASS], [PREFIX])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja egy entitás összes név oszlopát, minősített nevekkel. //
// (SQL töredék) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadNameColumns(MClass as ENTITY, ENTITYALIAS, PREFIX)
[loop (ENTITY -> MAttribute as ATTRIBUTE where GetStereoTypeForAttribute([ATTRIBUTE]) == "DisplayName")]
[ConvertNameToSQLTableName([ENTITYALIAS] "_" [ENTITY.id])].[ConvertNameToSQLColumnName([ATTRIBUTE.name])] ""[PREFIX]a[ENTITYALIAS]_[ATTRIBUTE.name]"",
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadNameColumns([BASECLASS], [ENTITYALIAS], [PREFIX])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás összes attribútumát, //
// asszociációs partnereinek azonosítóját és neveit tartalmazza. //
//***************************************************************************//
template GenerateLoadAllAssociationIDAndNameColumns(MClass as ENTITY, PREFIX)
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
[if ([ENDROLE.multiplicity] == "1")]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
[else]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
[else]
[if ([STARTROLE.multiplicity] == "1")]
[ConvertNameToSQLTableName([PARTNER.name])].ID as [ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
[else]
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[GenerateLoadNameColumns([PARTNER], [ENDROLE.id], [PREFIX])]
[end if]
[end if]
[end if]
[end if]
[else]
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
[/*-- XXX [GetRoleName([ENDROLE])] ez az asszociáció asszociációs osztállyal rendelkezik, és még nincs megvalósítva, lásd GenerateLoadAllAttributesAndEntityAssociationsIDToEntityState*/]
[end if]
[end if]
[end loop]
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity"))]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))],
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[end loop]
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAssociationIDCommandColumns([BASECLASS])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja az asszociációs partnerek azonosító oszlopait (SQL töredék) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAssociationIDCommandColumns(MClass as ENTITY)
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
[if ([ENDROLE.multiplicity] == "1")]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[else]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[else]
[if ([STARTROLE.multiplicity] == "1")]
[ConvertNameToSQLTableName([PARTNER.name])].ID as [ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[else]
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[end if]
[end if]
[end if]
[end if]
[else]
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
[/*-- XXX [GetRoleName([ENDROLE])] ez az asszociáció asszociációs osztállyal rendelkezik, és még nincs megvalósítva, lásd GenerateLoadAllAttributesAndEntityAssociationsIDToEntityState*/]
[end if]
[end if]
[end loop]
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity"))]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))],
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))],
[end loop]
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAssociationIDCommandColumns([BASECLASS])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez //
// felsorolja annak tábláit. (join-ok nélkül!) //
//***************************************************************************//
template GenerateJoinedLoadAllAttributesCommandTables(MClass as ENTITY, MClass as BASE, MAssociationEnd as STARTROLE)
inner join [ConvertNameToSQLTableName([ENTITY.name])] on ([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([BASE.name])].ID) [/*--4*/]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS], [ENTITY])]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez //
// felsorolja annak tábláit. (join-ok nélkül!) //
//***************************************************************************//
template GenerateLoadAllAttributesCommandTables(MClass as ENTITY)
[ConvertNameToSQLTableName([ENTITY.name])]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS], [ENTITY])]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez //
// felsorolja annak tábláit. (join-ok nélkül!) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAttributesCommandTablesCore(MClass as ENTITY, MClass as BASE)
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
inner join [ConvertNameToSQLTableName([ENTITY.name])] on ([ConvertNameToSQLTableName([BASE.name])].ID = [ConvertNameToSQLTableName([ENTITY.name])].ID) [/*--1*/]
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS], [ENTITY])]
[break]
[end loop]
[else]
inner join [ConvertNameToSQLTableName([ENTITY.name])] on ([ConvertNameToSQLTableName([BASE.name])].ID = [ConvertNameToSQLTableName([ENTITY.name])].ID) [/*--2*/]
[end if]
end template
//***************************************************************************//
// Legenerálja egy entitás asszociációs partner azonosító alapján való //
// lekérdezéséhez szükséges kapcsolótáblákat. //
// (SQL töredék a from szekcióban) //
//***************************************************************************//
template GenerateSwitchTablesByAssociation(MClass as ENTITY, MClass as PARTNER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE)
[if ([ENTITY.name] != [PARTNER.name])]
[if ([ENDROLE.multiplicity] == "1")]
[end if]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
[else]
[if ([STARTROLE.multiplicity] == "1")]
[ConvertNameToSQLTableName([PARTNER.name])] T_T_PARTNER,
[else]
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] T_T_SWITCH,
[end if]
[end if]
[end if]
[if (([ENDROLE.multiplicity] == "1..*") or ([ENDROLE.multiplicity] == "*") or ([ENDROLE.multiplicity] == "0..*"))]
[if (([STARTROLE.multiplicity] == "1") or ([STARTROLE.multiplicity] == "0..1"))]
[ConvertNameToSQLTableName([PARTNER.name])] T_T_PARTNER,
[else]
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] T_T_SWITCH,
[end if]
[end if]
[else]
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
[else]
[if ([STARTROLE.multiplicity] == "1" or [STARTROLE.multiplicity] == "0..1")]
[ConvertNameToSQLTableName([PARTNER.name])] T_T_PARTNER,
[else]
[ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] T_T_SWITCH,
[end if]
[end if]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami összekapcsolja az entitás //
// asszociációinak tábláit, az entitás táblái nélkül. //
// (from szekció az SQL-ben) //
//***************************************************************************//
template GenerateLoadAllAssociationIDAndNameColumnsCommandJoin(MClass as ENTITY)
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoinCore([ENTITY], [ENTITY])]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami összekapcsolja az entitás //
// asszociációinak tábláit, az entitás táblái nélkül. //
// (from szekció az SQL-ben) //
//***************************************************************************//
template GenerateLoadAllAssociationIDAndNameColumnsCommandJoinCore(MClass as ENTITY, MClass as MASTER)
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
[if ([ENDROLE.multiplicity] == "1")]
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
[else]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
[else]
[if ([STARTROLE.multiplicity] == "1")]
left join [ConvertNameToSQLTableName([PARTNER.name])] on [ConvertNameToSQLTableName([PARTNER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
[else]
left join [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))] on [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
[GenerateLoadNameColumnsCommandJoinCore([PARTNER], [MASTER], [STARTROLE], [ENDROLE])]
[end if]
[end if]
[end if]
[end if]
[end if]
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAssociationIDCommandJoinCore([BASECLASS], [MASTER])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja az asszociációs partnerek tábláinak join-jait. (SQL töredék) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAssociationIDCommandJoinCore(MClass as ENTITY, MClass as MASTER)
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNER where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNER]) == "Entity"))]
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
[else]
[if ([STARTROLE.multiplicity] == "1")]
left join [ConvertNameToSQLTableName([PARTNER.name])] on [ConvertNameToSQLTableName([PARTNER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
[else]
left join [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))] on [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
[end if]
[end if]
[end if]
[end if]
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAssociationIDCommandJoinCore([BASECLASS], [MASTER])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami összekapcsolja az entitás //
// asszociációinak tábláit, az entitás táblái nélkül. Csak azokat az //
// asszociációs partner táblákat kapcsolja hozzá, amelyek rendelkeznek név //
// attribútummal! //
// (from szekció az SQL-ben) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadNameColumnsCommandJoinCore(MClass as PARTNER, MClass as MASTER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE)
[if (HasNameAttribures([PARTNER]) == "True")]
[if ([ENDROLE.multiplicity] == "1")]
inner join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].ID = [ConvertNameToSQLTableName([MASTER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))]
[else]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
left join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].ID = [ConvertNameToSQLTableName([MASTER.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))]
[else]
[if ([STARTROLE.multiplicity] == "1")]
left join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([MASTER.name])].ID
[else]
left join [ConvertNameToSQLTableName([PARTNER.name])] [ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])] on
([ConvertNameToSQLTableName([ENDROLE.id] "_" [PARTNER.id])].ID = [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))])
and
([ConvertNameToSQLTableName([MASTER.name])].ID = [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE],[STARTROLE]))].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
[end if]
[end if]
[end if]
[end if]
[end if]
[if (IsMasterEntity([PARTNER]) == "false")]
[loop (PARTNER -> SuperClass as BASECLASS)]
[GenerateLoadNameColumnsCommandJoinCore([BASECLASS], [MASTER], [STARTROLE], [ENDROLE])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// A where szekciót generálja le egy SQL-hez, ami egy adott entitást kérdez //
// le asszociációs partnerek alapján. //
//***************************************************************************//
template GenerateAssociationJoinByAssociationWhere(MClass as ENTITY, MClass as PARTNER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE)
and
[if ([ENTITY.name] != [PARTNER.name])]
[if ([ENDROLE.multiplicity] == "1")]
([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[end if]
[if ([ENDROLE.multiplicity] == "0..1")]
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[else]
[if ([STARTROLE.multiplicity] == "1")]
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_PARTNER.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
and
(T_T_PARTNER.ID = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[else]
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
and
(T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[end if]
[end if]
[end if]
[if (([ENDROLE.multiplicity] == "1..*") or ([ENDROLE.multiplicity] == "*") or ([ENDROLE.multiplicity] == "0..*"))]
[if (([STARTROLE.multiplicity] == "1") or ([STARTROLE.multiplicity] == "0..1"))]
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_PARTNER.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
and
(T_T_PARTNER.ID = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[else]
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
and
(T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[end if]
[end if]
[else]
[if ([ENDROLE.multiplicity] == "1" or [ENDROLE.multiplicity] == "0..1")]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]
[else]
[if ([STARTROLE.multiplicity] == "1" or [STARTROLE.multiplicity] == "0..1")]
(T_T_PARTNER.ID = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
and
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_PARTNER.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
[else]
([ConvertNameToSQLTableName([ENTITY.name])].ID = T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))])
and
(T_T_SWITCH.[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
[end if]
[end if]
[end if]
end template
//***************************************************************************//
// Entitás verziójának felhozása //
//***************************************************************************//
template GenerateGetSerialCommand(MClass as ENTITY)
select
[GenerateSerialColumn([ENTITY])]
from
[GenerateLoadAllAttributesCommandTables([ENTITY])]
where
[if (IsMasterEntity([ENTITY]) == "true")]
([ConvertNameToSQLTableName([ENTITY.name])].SERIAL >= 0)
[else]
[end if]
and ([ConvertNameToSQLTableName([ENTITY.name])].ID = :[ConvertNameToCommandParameterName("ID")])
end template
//***************************************************************************//
// Legenerálja azt a teljes SQL-t helyőrzőkkel, ami egy entitást tölt fel //
// az asszociációs partnereinek azonosítóival együtt. //
//***************************************************************************//
template GenerateLoadAllAttributesAndEntityAssociationsIDCommand(MClass as ENTITY, MAXLASTCHANGEDONLY)
select /*+ {QID}{FID} {HINT} */
[if ([MAXLASTCHANGEDONLY] == "True")]
GETDATE(), COUNT(*)
[else]
[ConvertNameToSQLTableName([ENTITY.name])].ID ""ID"",
[GenerateLoadAllAttributesCommandColumns([ENTITY], "")]
[GenerateLoadAllAssociationIDAndNameColumns([ENTITY], "")]
[GenerateSerialColumn([ENTITY])]
[end if]
from
[GenerateLoadAllAttributesCommandTables([ENTITY])]
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ENTITY])]
{INNERFILTERS}
where
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ENTITY]))].SERIAL >= 0)
[if (IsMasterEntity([ENTITY]) == "true")]
[else]
[end if]
end template
//***************************************************************************//
// Entitás feltöltése partner alapján (SQL töredék) //
//***************************************************************************//
/* nem használt
template GenerateLoadAllAttributesAndEntityAssociationsIDByAssociationCommand(MClass as ENTITY, MClass as PARTNER, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE, MAXLASTCHANGEDONLY)
select
[if ([MAXLASTCHANGEDONLY] == "True")]
GETDATE(), COUNT(*)
[else]
[ConvertNameToSQLTableName([ENTITY.name])].ID ""ID"",
[GenerateLoadAllAttributesCommandColumns([ENTITY], "")]
[GenerateLoadAllAssociationIDAndNameColumns([ENTITY], "")]
[GenerateSerialColumn([ENTITY])]
[end if]
from
[GenerateSwitchTablesByAssociation([ENTITY], [PARTNER], [STARTROLE], [ENDROLE])]
[GenerateLoadAllAttributesCommandTables([ENTITY])]
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ENTITY])]
{INNERFILTERS}
where
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ENTITY]))].SERIAL >= 0)
[if (IsMasterEntity([ENTITY]) == "true")]
[else]
[end if]
[GenerateAssociationJoinByAssociationWhere([ENTITY], [PARTNER], [STARTROLE], [ENDROLE])]
end template
*/
//***************************************************************************//
// Entitás feltöltése partner alapján asszociációs osztállyal együtt //
//***************************************************************************//
template GenerateLoadAllAttributesAndEntityAssociationsIDByAssociationCommandWithAssociationClass(MClass as ENTITY, MClass as PARTNER, MClass as ASSOCIATIONCLASS, MAssociationEnd as STARTROLE, MAssociationEnd as ENDROLE, MAXLASTCHANGEDONLY)
select /*+ {QID}{FID} {HINT} */
[if ([MAXLASTCHANGEDONLY] == "True")]
GETDATE(), COUNT(*)
[else]
[ConvertNameToSQLTableName([ENTITY.name])].ID ""ID"",
[GenerateLoadAllAttributesCommandColumns([ENTITY], "")]
[GenerateLoadAllAssociationIDAndNameColumns([ENTITY], "")]
[GenerateSerialColumn([ENTITY])],
[ConvertNameToSQLTableName([ASSOCIATIONCLASS.name])].ID ""_ID"",
[GenerateLoadAllAttributesCommandColumns([ASSOCIATIONCLASS], "_")]
[GenerateLoadAllAssociationIDAndNameColumns([ASSOCIATIONCLASS], "_")]
[GenerateSerialColumn([ASSOCIATIONCLASS])]
[end if]
from
[GenerateLoadAllAttributesCommandTables([ENTITY])]
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ENTITY])]
[GenerateJoinedLoadAllAttributesCommandTables([ASSOCIATIONCLASS], [ENTITY], [STARTROLE])]
[GenerateLoadAllAssociationIDAndNameColumnsCommandJoin([ASSOCIATIONCLASS])]
{INNERFILTERS}
where
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ENTITY]))].SERIAL >= 0)
[if (IsMasterEntity([ENTITY]) == "true")]
[else]
[end if]
and
([ConvertNameToSQLTableName(GetMasterEntityNameOf([ASSOCIATIONCLASS]))].SERIAL >= 0)
[if (IsMasterEntity([ASSOCIATIONCLASS]) == "true")]
[else]
[end if]
and
([ConvertNameToSQLTableName([ASSOCIATIONCLASS.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))])
end template