cfproperty
Description
Defines properties and their annotations for a ColdFusion component (CFC). The properties are used to create complex data types for web services, while the annotations are used to define Object Relational Model (ORM) for a CFC. The attributes of this tag are exposed as component metadata and are subject to inheritance rules.
Categories
Related
History
ColdFusion
9: Added attributes for defining Object Relational Model for the
CFC.
Added implicit getters and setters. Added validate and
validateparams attributes.
ColdFusion MX: Added this tag.
Syntax
<cfproperty
name="name"
default="default value"
displayname="descriptive name"
hint="extended description"
required="false|true"
serializable="true|false"
type="type">
Note: For ORM-related attributes
and their usage, see ColdFusion
ORM in the Developing ColdFusion Applications.
Attributes
| Attribute | Description | Required | Default |
|---|---|---|---|
| batchsize | For information about these attributes, see ColdFusion ORM. | ||
| cascade | |||
| catalog | |||
| cfc | |||
| collectiontype | |||
| column | |||
| constrained | |||
| datatype | |||
| default | If no property value is set when the component is used for a web service, specifies a default value. If this attribute is present, the required attribute must be set to no or not specified. For ORM-specific usage of the default attribute, see ColdFusion ORM. | Optional | |
| displayname | A value to be displayed when using introspection to show information about the CFC. The value appears in parentheses following the property name. | Optional | |
| dynamicInsert | For information about these attributes, see ColdFusion ORM. | ||
| dynamicupdate | |||
| elementColumn | |||
| elementtype | |||
| entityname | |||
| fetchbatchsize | |||
| fieldType | |||
| fkcolumn | |||
| formula | |||
| generator | |||
| getter | Specifies whether to generate getter methods or not. Value are: true false | Optional | |
| hint | Text to be displayed when using introspection to show information about the CFC. This attribute can be useful for describing the purpose of the parameter. | Optional | |
| index | For information about these attributes, see ColdFusion ORM. | ||
| insert | |||
| inverse | |||
| inversejoincolumn | |||
| joincolumn | |||
| lazy | |||
| length | |||
| linkcatalog | |||
| linkschema | |||
| linktable | |||
| mappedby | |||
| missingrowIgnored | |||
| name | A string; a property name. Must be a static value. | Required | |
| notnull | For information about these attributes, see ColdFusion ORM. | ||
| optimisticLock | |||
| optimisticLockgenerated | |||
| orderby | |||
| orderByreadonly | |||
| params | For information about these attributes, see ColdFusion ORM. | ||
| persistent | |||
| preceision | |||
| readonly | |||
| readonly | |||
| required | Whether the parameter is required: yes no | Optional | no |
| rowid | For information about these attributes, see ColdFusion ORM. | ||
| scale | |||
| schema | For information about these attributes, see ColdFusion ORM. | ||
| selectbeforeupdate | |||
| selectkey | |||
| sequence | |||
| serializable | Specifies whether this property can be serialized. If you set this value to false, the property cannot be serialized, so any changes made are not retained on session replication, and the property has its default value (if any) on the second server. Use this attribute to prevent serializaton of properties in CFCs that are serializable. | Optional | true |
| setter | Specifies whether to generate setter methods or not. Possible values are: true false | ||
| source | For information about these attributes, see ColdFusion ORM. | ||
| structkeycolumn | |||
| structkeycolumn | |||
| structkeydatatype | |||
| structkeyType | |||
| table | |||
| table | |||
| type | A string; identifies the property data type: any array binary boolean date guid: the argument must be a UUID or GUID of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx where each x is a character representing a hexadecimal number (0-9A-F). numeric query string struct uuid: The argument must be a ColdFusion UUID of the form xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx where each x is a character representing a hexadecimal number (0-9A-F). variableName: a string formatted according to ColdFusion variable naming conventions. a component name: if the type attribute value is not one of the preceding items, ColdFusion treats it as the name of a ColdFusion component. When the function executes, it generates an error if the argument that is passed in is not a CFC with the specified name. | Optional | any |
| unique | For information about these attributes, see ColdFusion ORM. | ||
| uniquekey | |||
| update | |||
| validate | For more information, see Validate and validateparams attributes. | Optional | |
| validateparam | Optional | ||
| where |
Usage
You must position cfproperty tags at the beginning of a component, above executable code and function definitions.
If a component is not used as a web service, <cfproperty> only provides metadata information of the property. It does not define variables or set values that you can use in your component. However, it creates implicit setters and getters for the property in the CFC depending on whether getter/setter attributes are enabled. For details, see Implicit Get and Set Functions in Developing ColdFusion Applications.
For Object Relational Model (ORM), cfproperty is used to define relational mapping for the property of the CFC. For details, see ColdFusion ORM in Developing ColdFusion Applications.
For web services that you create in ColdFusion, the cfproperty tag defines complex variables used by the web service.
If a component is not used as a web service, <cfproperty> only provides metadata information of the property. It does not define variables or set values that you can use in your component. However, it creates implicit setters and getters for the property in the CFC depending on whether getter/setter attributes are enabled. For details, see Implicit Get and Set Functions in Developing ColdFusion Applications.
For Object Relational Model (ORM), cfproperty is used to define relational mapping for the property of the CFC. For details, see ColdFusion ORM in Developing ColdFusion Applications.
For web services that you create in ColdFusion, the cfproperty tag defines complex variables used by the web service.
Example
The
following code defines a component in the file address.cfc that
contains properties that represent a street address:
<cfcomponent>
<cfproperty name="Number" type="numeric">
<cfproperty name="Street" type="string">
<cfproperty name="City" type="string">
<cfproperty name="State" type="string">
<cfproperty name="Country" type="string">
</cfcomponent>
This component represents a
complex data type that can be used in a component that is exported
as a web service, such as the following:
<cfcomponent>
<cffunction name="echoAddress" returnType="address" access="remote">
<cfargument name="input" type="address">
<cfreturn arguments.input>
</cffunction>
</cfcomponent>