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

AttributeDescriptionRequiredDefault
batchsizeFor information about these attributes, see ColdFusion ORM.  
cascade 
catalog 
cfc 
collectiontype 
column 
constrained 
datatype 
defaultIf 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
displaynameA value to be displayed when using introspection to show information about the CFC. The value appears in parentheses following the property name.Optional
dynamicInsertFor information about these attributes, see ColdFusion ORM.  
dynamicupdate 
elementColumn 
elementtype 
entityname 
fetchbatchsize 
fieldType 
fkcolumn 
formula 
generator 
getterSpecifies whether to generate getter methods or not. Value are: true falseOptional 
hintText 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
indexFor information about these attributes, see ColdFusion ORM.  
insert 
inverse 
inversejoincolumn 
joincolumn 
lazy 
length 
linkcatalog 
linkschema 
linktable 
mappedby 
missingrowIgnored 
nameA string; a property name. Must be a static value.Required
notnullFor information about these attributes, see ColdFusion ORM.  
optimisticLock 
optimisticLockgenerated 
orderby 
orderByreadonly 
paramsFor information about these attributes, see ColdFusion ORM.  
persistent 
preceision 
readonly 
readonly 
requiredWhether the parameter is required: yes noOptionalno
rowidFor information about these attributes, see ColdFusion ORM.  
scale 
schemaFor information about these attributes, see ColdFusion ORM.  
selectbeforeupdate 
selectkey 
sequence 
serializableSpecifies 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.Optionaltrue
setterSpecifies whether to generate setter methods or not. Possible values are: true false  
sourceFor information about these attributes, see ColdFusion ORM.  
structkeycolumn 
structkeycolumn 
structkeydatatype 
structkeyType 
table 
table 
typeA 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.Optionalany
uniqueFor information about these attributes, see ColdFusion ORM.  
uniquekey 
update 
validateFor more information, see Validate and validateparams attributes.Optional 
validateparamOptional
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.

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>