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.

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.

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.

Attributes

Attribute

Req/Opt

Default

Description

batchsize

   

For information about these attributes, see ColdFusion ORM.

cascade

   

catalog

   

cfc

   

collectiontype

   

column

   

constrained

   

datatype

   

default

Optional

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.

displayname

Optional

A value to be displayed when using introspection to show information about the CFC. The value appears in parentheses following the property name.

dynamicInsert

   

For information about these attributes, see ColdFusion ORM.

dynamicupdate

   

elementColumn

   

elementtype

   

entityname

   

fetchbatchsize

   

fieldType

   

fkcolumn

   

formula

   

generator

   
getter

Optional

 

Specifies whether to generate getter methods or not. Value are:

  • true

  • false

hint

Optional

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.

index

   

For information about these attributes, see ColdFusion ORM.

insert

   

inverse

   
inversejoincolumn
   

joincolumn

   

lazy

   

length

   

linkcatalog

   

linkschema

   

linktable

   

mappedby

   

missingrowIgnored

   

name

Required

A string; a property name. Must be a static value.

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

Optional

no

Whether the parameter is required:

  • yes

  • no

rowid

   

For information about these attributes, see ColdFusion ORM.

scale

   
setter
   

Specifies whether to generate setter methods or not. Possible values are:

  • true

  • false

schema

   

For information about these attributes, see ColdFusion ORM.

selectbeforeupdate

   

selectkey

   

sequence

   

serializable

Optional

true

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.

source

   

For information about these attributes, see ColdFusion ORM.

structkeycolumn

   

structkeycolumn

   

structkeydatatype

   

structkeyType

   

table

   

table

   

type

Optional

any

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.

unique

   

For information about these attributes, see ColdFusion ORM.

uniquekey

   

update

   
where
   

validate

Optional

 

For more information, see Validate and validateparams attributes.

validateparam

Optional

 

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>