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"

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.