Last active
December 31, 2015 07:49
-
-
Save thecfguy/7956829 to your computer and use it in GitHub Desktop.
one-to-many and many-to-one relationship
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| component output="false" singleton{ | |
| // Default Action | |
| property name="masterService" inject="entityService:tmaster" scope="variables"; | |
| property name="detailService" inject="entityService:tdetail" scope="variables"; | |
| function index(event,rc,prc){ | |
| var queryService = new query(); | |
| queryService.execute(sql="delete from tmaster where id not in (select masterid from tdetail)"); | |
| queryService.execute(sql="DELETE FROM tdetail WHERE masterid not IN (select id from tmaster) or masterid is null"); | |
| var msg = {}; | |
| var myid = getTickCount(); | |
| var masterbeans = masterService.findAllWhere(criteria={},sortOrder="id desc"); | |
| var myarr = [masterbeans[1].id,masterbeans[2].id,masterbeans[3].id,masterbeans[4].id]; | |
| writeDump(myarr); | |
| /* DELETE */ | |
| /* MASTER */ | |
| try{ | |
| var masterid = myarr[1]; | |
| masterService.delete(masterbeans[1]); | |
| msg["delete_master"] = "Success " & masterid; | |
| ormFlush(); | |
| } | |
| catch(e){ | |
| msg["delete_master"] = e.message & masterid; | |
| } | |
| ormClearSession(); | |
| /* DELETE */ | |
| try{ | |
| var detailid = myarr[2]; | |
| detailService.delete(detailService.get(detailid)); | |
| msg["delete_detail"] = "Success " & detailid; | |
| ormFlush(); | |
| } | |
| catch(e){ | |
| msg["delete_detail"] = e.message & detailid; | |
| } | |
| /* EDIT */ | |
| /* Master */ | |
| ormClearSession(); | |
| try{ | |
| var masterbean = masterService.get(myarr[3]); | |
| masterbean.col1 = "#myid#"; | |
| masterbean.details[1].col2 = "#myid#"; | |
| masterService.save(masterbean); | |
| msg["update_master"] = "Success" & masterbean.id; | |
| ormFlush(); | |
| } | |
| catch(e){ | |
| msg["update_master"] = e.message & masterbean.id; | |
| } | |
| ormClearSession(); | |
| /* Detail */ | |
| try{ | |
| var detailbean = detailService.get(myarr[4]); | |
| detailbean.col2 = "#myid+1#"; | |
| detailbean.master.col1 = "#myid+1#"; | |
| detailService.save(detailbean); | |
| msg["update_detail"] = "Success" & detailbean.id; | |
| ormFlush(); | |
| } | |
| catch(e){ | |
| msg["update_detail"] = e.message & detailbean.id; | |
| } | |
| /* ADD */ | |
| /* MASTER */ | |
| ormClearSession(); | |
| try{ | |
| var masterbean = masterService.new({id:myid,col1:"from master"}); | |
| var detailbean = detailService.new({id:myid,col2:"from master"}); | |
| masterbean.addDetail(detailbean); | |
| detailbean.master = masterbean; | |
| masterService.save(masterbean); | |
| msg["add_master"] = "Success" & myid; | |
| ormFlush(); | |
| } | |
| catch(e){ | |
| msg["add_master"] = e.message & myid; | |
| } | |
| ormClearSession(); | |
| /* DETAIL */ | |
| try{ | |
| myid = myid + 1; | |
| var masterbean1 = masterService.new({id:myid,col1:"from detail"}); | |
| var detailbean1 = detailService.new({id:myid,col2:"from detail"}); | |
| detailbean1.master = masterbean1; | |
| detailService.save(detailbean1); | |
| msg["add_detail"] = "Success" & myid; | |
| ormFlush(); | |
| } | |
| catch(e){ | |
| msg["add_detail"] = e.message & myid; | |
| ormClearSession(); | |
| } | |
| writeDump(msg);abort; | |
| event.setView("test"); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| component displayname="tdetail" output="false" persistent="true" { | |
| property name="id" fieldtype="id"; | |
| property name="col2" type="string"; | |
| property name="master" fieldtype="many-to-one" cfc="tmaster" fkcolumn="masterid" cascade="refresh"; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| component displayname="tmaster" output="false" persistent="true" { | |
| property name="id" fieldtype="id"; | |
| property name="col1" type="string"; | |
| property name="details" type="array" fkcolumn="masterid" fieldtype="one-to-many" cfc="tdetail" | |
| cascade="all-delete-orphan" singularname="detail" inverse="true"; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment