Ticket #130 (new defect)

Opened 1 year ago

Last modified 3 months ago

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

Changed 3 months ago by mark.drew@…

  • milestone set to 1.0 Release
Note: See TracTickets for help on using tickets.