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.

Reply via email to