The SQL repository lets you define properties of a repository item that are transient. Transient properties are never stored or read from the persistent data store. They are readable and writable, but not queryable. Transient properties provide applications a hook for custom objects that are not persisted by the repository.
You can specify a transient property by defining a <property>
tag that is not associated with any database table, but which is instead a direct child of an <item-descriptor>
tag. For example, in the following example, the user
item descriptor has a transient property that specifies whether the user is logged in at that time:
<item-descriptor name="user" sub-type-property="userType"> <property name="loggedIn" data-type="boolean"> <table name="user" type="primary" id-column-names="id"> <property name="userType" data-type="enumerated" column-name="user_type"> ...
You can also define an entire item descriptor to be transient. Such an item descriptor has no <table>
tags and no properties that are direct children of a <table>
tag. The properties of transient item descriptor are queryable by default, unlike a transient property of an item descriptor with other properties that are persistent properties. In the case of a transient item descriptor, no indexing is used, so queries against large repositories are slow. Using transient repositories is sometimes a useful testing tool during application development.