#instancesNonPersistent can be used as an element in the options: argument of a subclass creation method. New instances of the class are then created such as they cannot be made persistent; committing a reference to them from the repository is disallowed. There are a number of other similar options that affect instance behavior, including #subclassesDisallowed, #disallowGciStore, #traverseByCallback, #dbTransient, and #instancesInvariant.
These options are automatically inherited by subclasses, new versions, and after executing subclass creation methods that do not version the class, but modify the existing class as a side-effect. Attempting to remove an option by defining a new version of the class without that options symbol may not have the desired effect.
If you wish to turn off #instancesNonPersistent or other options, you must specify #noInheritOptions as the first element in the options: argument array when executing the subclass definition method that either redefines the class or defines the subclass.
Last updated: 2/4/19