Yep your code was correct except the tx close. You want to wrap that into a try-with-resource block, not sure how that looks in scala.
Remote server has no transactions (currently) each request is one tx. Cheers, Michael ---- (michael)-[:SUPPORTS]->(YOU)-[:USE]->(Neo4j) Learn Online, Offline or Read a Book (in Deutsch) We're trading T-shirts for cool Graph Models Am 14.03.2014 um 03:18 schrieb Michael Azerhad <[email protected]>: > I've just fixed the deadlock: I was missing the "tx.close()" statement at the > end of each of my transaction. > Now I seek for the reason why my cars is empty, after the save.. using > embedded mode. > When using REST mode, it still works. > > I would just like to have the confirmation that the way I exposed above is > correct. > I will then search myself for the reason :) > > Thanks a lot :) > > On Friday, March 14, 2014 2:57:16 AM UTC+1, Michael Azerhad wrote: > It sounds to be a deadlock: > > A deadlock scenario has been detected and avoided. This means that two or > more transactions, which were holding locks, were wanting to await locks held > by one another, which would have resulted in a deadlock between these > transactions. This exception was thrown instead of ending up in that deadlock. > > > See the deadlock section in the Neo4j manual for how to avoid this: > http://docs.neo4j.org/chunked/stable/transactions-deadlocks.html > > > Details: 'Transaction(98, > owner:"play-akka.actor.default-dispatcher-6")[STATUS_ACTIVE,Resources=1] > can't wait on resource RWLock[NodeLock[id=0]] since => Transaction(98, > owner:"play-akka.actor.default-dispatcher-6")[STATUS_ACTIVE,Resources=1] > <-[:HELD_BY]- RWLock[NodeLock[id=3]] <-[:WAITING_FOR]- Transaction(101, > owner:"play-akka.actor.default-dispatcher-9")[STATUS_ACTIVE,Resources=1] > <-[:HELD_BY]- RWLock[NodeLock[id=0]]'. > at > org.springframework.data.neo4j.support.Neo4jExceptionTranslator.translateExceptionIfPossible(Neo4jExceptionTranslator.java:67) > at > org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) > at > org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) > at > org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) > at $Proxy57.save(Unknown Source) > at > com.myApp.infrastructure.persistence.user.Neo4jUserRepository.save(Neo4jUserRepository.scala:15) > > > On Friday, March 14, 2014 2:45:17 AM UTC+1, Michael Hunger wrote: > How does it fail? > D > Am 14.03.2014 um 01:54 schrieb Michael Azerhad <[email protected]>: > >> Hi, >> >> I try to update the relationship of a Node that is a collection. >> Example: User has a list of Cars. >> >> Firstly, I saved the User with the Cars set beforehand, and the whole works >> with embedded mode and REST mode. >> >> Now, I want to add one Car to the list of this User. >> >> So I tried the following: (Scala code but easy to figure out) >> >> val tx = graphDatabaseService.beginTx() >> val user = userRepository.findById(1) >> user.cars.clear() //cars being the relationships (Set[Cars]) >> user.cars.add(new Car("Ferrari")) >> userRepository.save(user) // fail with embedded but >> works with REST mode ! >> tx.success() >> >> >> Is it the right way to update the collection ? >> Is there something special on the embedded mode handling ? >> >> Thanks, >> >> Michael >> >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
