I was able to *mostly* solve my problem. The main thing was to specify a 1-to-1 for my association even though it is a many-to-many. This gets the service working for create, update and delete operations. However, it gives the error "Multiple resources found. Inconsistency between data model and service description found." when navigating to the URIs of the child collections. I created a second service just for reads, but I am now stumped on how to handle the inline editing since a table can only have one service(model). Here is my service definition for the write side:
service {
"xxx.yyy.ComplianceTracker.data::ComplianceModel.ProtectedResource"
as "ProtectedResources"
navigates ("ToProtectedResourceComplianceRequirements" as "ProtectedResourceComplianceRequirements")
create events(before "xxx.yyy.ComplianceTracker.services:protectedResourceComplianceRequirements.xsjslib::createProtectedResourceBeforeExit")
delete using "xxx.yyy.ComplianceTracker.procedures::deleteProtectedResource"
;
//"xxx.yyy.ComplianceTracker.data::ComplianceModel.ComplianceRequirement" as "ComplianceRequirements";
"xxx.yyy.ComplianceTracker.data::ComplianceModel.ProtectedResourceComplianceRequirement" as "ProtectedResourceComplianceRequirements"
//create events(before "xxx.yyy.ComplianceTracker.services:protectedResourceComplianceRequirements.xsjslib::createProtectedResourceComplianceReqsBeforeExit")
;
association "ToProtectedResourceComplianceRequirements"
principal "ProtectedResources"("ID") multiplicity "1"
//dependent "ComplianceRequirements"("ID") multiplicity "*"
dependent "ProtectedResourceComplianceRequirements"("PROTECTED_RESOURCE.ID") multiplicity "1"
over "xxx.yyy.ComplianceTracker.data::ComplianceModel.ProtectedResourceComplianceRequirement"
principal ("PROTECTED_RESOURCE.ID")
dependent ("PROTECTED_RESOURCE.ID")
update using "xxx.yyy.ComplianceTracker.services:protectedResourceComplianceRequirements.xsjslib::createAssociationBeforeExit"
;
}