Thursday, May 20, 2010

One to One Relationship

This example shows how to define a one to one relationship between tables which share the same primary key

Application.cfc
<cfset this.name = "MyBlog_one2one_same_pk">
<cfset this.datasource = "ORM_EG">
<cfset this.ormenabled = "true">

Employee.cfc
<cfcomponent persistent="true" table="employees">
    <cfproperty name="EmployeeID" fieldtype="id" generator="native">
        <cfproperty name="PersonalObj" fieldtype="one-to-one" cfc="Personal" cascade="all">
    <cfproperty name="LastName">
    <cfproperty name="FirstName">
</cfcomponent>

Personal.cfc
<cfcomponent persistent="true" table="personal">
    <cfproperty name="PersonalID" generator="foreign" params="{property=EmployeeObj}">
        <cfproperty name="EmployeeObj" fieldtype="one-to-one" cfc="Employee" constrained="true">
    <cfproperty name="SSN">
    <cfproperty name="FatherName">
</cfcomponent>

Inserting
<cfset empObj = createobject("component", "Employee")>
<cfset empObj.setFirstName("James")>
<cfset empObj.setLastName("Bond")>
      
<cfset perObj = createobject("component", "Personal")>
<cfset perObj.setSSN("1-1-100")>
<cfset perObj.setFatherName("Bond")>
<cfset perObj.setEmployeeObj(empObj)>

<cfset empObj.setPersonalObj(perObj)>
<cfset EntitySave(empObj)>
<cfset ormflush()>

No comments:

Post a Comment