Ticket #130 (new defect)
DAO Generator's update/delete methods' where clause not generated unless table has id column
| Reported by: | johughes | Owned by: | dhughes |
|---|---|---|---|
| Type: | defect | Priority: | highest |
| Milestone: | 1.0 Release | Component: | Documentation |
| Version: | Severity: | blocker | |
| Keywords: | Cc: |
Description
I realized that my many-to-many relationships with reactor weren't working properly on deletes.
Reactor was generating delete and update methods in objectDao.cfc like this:
<cffunction name="delete" access="public" hint="I delete a record in the listing_attached table." output="false" returntype="void"> <cfargument name="to" hint="I am the transfer object for listing_attached which will be used to delete from the table." required="yes" type="any" _type="reactor.project.Niblock.To.listing_attachedTo" /> <cfset var Convention = getConventions() /> <cfset var qDelete = 0 /> <cfquery name="qDelete" datasource="#_getConfig().getDsn()#" username="#_getConfig().getUsername()#" password="#_getConfig().getPassword()#"> DELETE FROM #Convention.FormatObjectName(getObjectMetadata())# WHERE </cfquery> </cffunction>
With the where clause missing. Poking around a bit led me to discover that this was because my join tables have no id columns. This is how I normally construct joining tables in my schemas, as I normally have no need for an ID column. If Reactor requires Id columns in joining tables, this should be documented, and should throw an exception upon not finding them.
Change History
Note: See
TracTickets for help on using
tickets.

