Class Persistent-Association

Part of:

package cl-perec, class exportable

Direct Superclass

exportable

Slot

associated-classesInitform:(compute-as* nil (list (find-class (getf (first (association-end-definitions-of -self-)) class)) (find-class (getf (second (association-end-definitions-of -self-)) class)))), Initargs::associated-classes; Accessors:associated-classes-of; Type:list.
association-end-definitions
Canonical form of the persistent association end direct slot definitions.
Initform:(compute-as* nil nil), Initargs::association-end-definitions; Accessors:association-end-definitions-of; Type:list.
association-endsInitform:(compute-as* nil (list (primary-association-end-of -self-) (secondary-association-end-of -self-))), Initargs::association-ends; Accessors:association-ends-of; Type:list.
association-kind
Valid values are :1-1, :1-n or :m-n according to association end cardinalities.
Initform:(compute-as* nil (let ((cardinality-kinds (mapcar 'cardinality-kind-of (association-ends-of -self-)))) (cond ((equal cardinality-kinds '(1 1)) 1-1) ((equal cardinality-kinds '(n n)) m-n) (t 1-n)))), Initargs::association-kind; Accessors:association-kind-of; Type:symbol.
ensure-exported
A persistent class, a persistent association and the related tables must be exported before use. This will automatically happen not later than making, reviving, querying or using by any means the first instance of it.
Initform:(compute-as* nil (export-to-rdbms -self-) -self-), Initargs::ensure-exported; Reader:ensure-exported.
name
The name of the RDBMS table.
Initargs::name; Accessors:name-of; Type:symbol.
primary-association-end
True iff this end is the primary association end of its association.
Initform:(compute-as* nil (eq (slot-definition-name -self-) (slot-definition-name (primary-association-end-of (association-of -self-))))), Initargs::primary-association-end; Accessors:primary-association-end-p; Type:boolean.
primary-table
The table which holds the oid and the data of the direct slots of this class. If the class is abstract and does not have any persistent direct slots then it will not have a primary table. A primary table if exists contains one and only one record per instance of its persistent class.
Initform:(compute-as* nil (compute-primary-table -self- -current-value-)), Initargs::primary-table; Accessors:primary-table-of; Type:table.
secondary-association-end
True iff this end is the secondary association end of its association.
Initform:(compute-as* nil (eq (slot-definition-name -self-) (slot-definition-name (secondary-association-end-of (association-of -self-))))), Initargs::secondary-association-end; Accessors:secondary-association-end-p; Type:boolean.

Direct Method

compute-primary-table
export-to-rdbmsExports classes, associations, tables to the database, may create new tables or alter existing on...