Hello guys, I have a many-to-many relationship between two mappers called, Users and Devices.
There is also an API that receives and XML message that contains one user and one device. The API could create the Device and User with the relationship or it could create only the relationship in case the users and/or device already exists. The problem I have is that the API creates the User and the Device, but the not the relationship. This is the code that saves the records (just a test for a now): def addUser(req: Req): LiftResponse = { var tempUserName = "" var tempDeviceName = "" var deviceAlreadyExists = false val newUser = new User val newDevice = new Device req.xml match { case Full(<person>{parameters @_*}</person>) => { for(parameter <- parameters){ parameter match { case <userName>{userName}</userName> => tempUserName = userName.text case <firstName>{firstName}</firstName> => newUser.firstName(firstName.text) case <lastName>{lastName}</lastName> => newUser.lastName(lastName.text) case <password>{password}</password> => newUser.password(password.text) case <email>{email}</email> => newUser.email(email.text) case <createdon>{createdOn}</createdon> => newUser.createdOn(new java.util.Date(createdOn.text)) case <updatedon>{updatedOn}</updatedon> => newUser.updatedOn(new java.util.Date(updatedOn.text)) case <device>{deviceName}</device> => tempDeviceName = deviceName.text case _ => } } try { Device.find(By (Device.deviceName,tempDeviceName)) match { case Full(deviceRequested) => deviceAlreadyExists = true case _ => { newDevice.deviceName (tempDeviceName) newDevice.createdBy(tempUserName) newDevice.createdOn (newUser.createdOn) newDevice.updatedBy(tempUserName) newDevice.updatedOn (newUser.updatedOn) newDevice.save } } User.find(By(User.userName, tempUserName)) match { case Full(userRequested) => CreatedResponse(wrapXmlBody (<operation id="addPerson" success="1"></operation>), "text/xml") case _ => { newUser.userName(tempUserName) newUser.createdBy(tempUserName) newUser.updatedBy(tempUserName) newUser.devices.clear newUser.validated(true) newUser.devices += newDevice newUser.save CreatedResponse(wrapXmlBody (<operation id="addPerson" success="0"></operation>), "text/xml") } } } catch { case e => Log.error("Could not add person/ device", e); BadResponse() } } case _ => Log.error("Request was malformed "+req.view); BadResponse() } } The field "devices" is the MappedManyToMany field within the User mapper. What am I doing wrong? Thanks in advance, GA --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---