/**
* INTERNAL:
*/
public void onConnect() {
DatasourcePlatform platform = (DatasourcePlatform)getDatasourcePlatform();
if (!platform.supportsNativeSequenceNumbers() && (getSelectQuery() == null)) {
throw ValidationException.platformDoesNotSupportSequence(getName(), Helper.getShortClassName(getDatasourcePlatform()), Helper.getShortClassName(this));
}
// Set shouldAcquireValueAfterInsert flag: identity -> true; sequence objects -> false.
if (platform.supportsIdentity() && shouldUseIdentityIfPlatformSupports()) {
// identity is both supported by platform and desired by the NativeSequence
setShouldAcquireValueAfterInsert(true);
} else if (platform.supportsSequenceObjects() && !shouldUseIdentityIfPlatformSupports()) {
// sequence objects is both supported by platform and desired by the NativeSequence
setShouldAcquireValueAfterInsert(false);
} else {
if (platform.supportsNativeSequenceNumbers()) {
// platform support contradicts to NativeSequence setting - go with platform supported choice.
// platform must support either identity or sequence objects (otherwise ValidationException would've been thrown earlier),
// therefore here dbPlatform.supportsIdentity() == !dbPlatform.supportsSequenceObjects().
setShouldAcquireValueAfterInsert(platform.supportsIdentity());
}
}
setShouldUseTransaction(platform.shouldNativeSequenceUseTransaction());
super.onConnect();
}