public override void PostInstantiate(ISessionFactoryImplementor factory) { InitPropertyPaths(factory); InitLockers(); // initialize the SqlStrings - these are in the PostInstantiate method because we need // to have every other IClassPersister loaded so we can resolve the IType for the // relationships. In Hibernate they are able to just use ? and not worry about Parameters until // the statement is actually called. We need to worry about Parameters when we are building // the IClassPersister... sqlDeleteString = GenerateDeleteString(); sqlInsertString = GenerateInsertString(false, PropertyInsertability); sqlIdentityInsertString = IsIdentifierAssignedByInsert ? GenerateInsertString(true, PropertyInsertability) : null; sqlUpdateString = GenerateUpdateString(PropertyUpdateability); sqlConcreteSelectString = GenerateConcreteSelectString(PropertyUpdateability); sqlVersionSelectString = GenerateSelectVersionString(factory); IUniqueEntityLoader loader = CreateEntityLoader(factory); loaders.Add(LockMode.None, loader); loaders.Add(LockMode.Read, loader); SqlString selectForUpdate = Dialect.SupportsForUpdate ? GenerateSelectForUpdateString() : GenerateSelectString(null); loaders.Add(LockMode.Upgrade, new SimpleEntityLoader(this, selectForUpdate, LockMode.Upgrade)); SqlString selectForUpdateNoWaitString = Dialect.SupportsForUpdateNoWait ? GenerateSelectForUpdateNoWaitString() : selectForUpdate.Clone(); loaders.Add(LockMode.UpgradeNoWait, new SimpleEntityLoader(this, selectForUpdateNoWaitString, LockMode.UpgradeNoWait)); CreateUniqueKeyLoaders(factory); }
protected void CreateQueryLoader() { if (loaderName != null) queryLoader = new NamedQueryLoader(loaderName, this); }
public override void PostInstantiate( ISessionFactoryImplementor factory ) { InitPropertyPaths( factory ); loader = CreateEntityLoader( factory ); CreateUniqueKeyLoaders( factory ); InitLockers( ); // initialize the Statements - these are in the PostInstantiate method because we need // to have every other IClassPersister loaded so we can resolve the IType for the // relationships. In Hibernate they are able to just use ? and not worry about Parameters until // the statement is actually called. We need to worry about Parameters when we are building // the IClassPersister... sqlDeleteStrings = GenerateDeleteStrings(); sqlInsertStrings = GenerateInsertStrings( false, PropertyInsertability ); sqlIdentityInsertStrings = IsIdentifierAssignedByInsert ? GenerateInsertStrings( true, PropertyInsertability ) : null; sqlUpdateStrings = GenerateUpdateStrings( PropertyUpdateability ); sqlVersionSelectString = GenerateSelectVersionString( factory ); sqlConcreteSelectString = GenerateConcreteSelectString(); // This is used to determine updates for objects that came in via update() propertyHasColumns = new bool[sqlUpdateStrings.Length]; for( int m = 0; m < sqlUpdateStrings.Length; m++ ) { propertyHasColumns[ m ] = ( sqlUpdateStrings[ m ] != null ); } }