Do you have a concrete use-case Binod?

On Fri, Jan 27, 2017 at 9:38 PM, binod singh <[email protected]> wrote:

> Do we have further update on this? How to supper optimistic locking
>
>
> On Friday, April 17, 2015 at 8:43:01 AM UTC-4, Stéphane Schild wrote:
>>
>> Hi,
>>
>> Does anyone have a response on this topic? I have exactly the same
>> problem and need clarifications to be able to make a choice between Neo4J
>> and others databases.
>>
>> Thank you very much !
>>
>> Stéphane Schild
>>
>> Le mercredi 25 février 2015 08:51:17 UTC+1, Denis Moret a écrit :
>>>
>>> Hi,
>>>
>>> Regarding Michael Hunger response
>>> <https://groups.google.com/d/msg/neo4j/5IbORTqPaQs/CFKLfT3gFVQJ> and
>>> using
>>>
>>> Spring data neo4j 3.3.0.M1
>>> Spring 4.1.4
>>> Neo4j 2.16
>>> Java 1.7
>>>
>>> I've tried to use the advance mapping to have the optimistic locking
>>> working without success.
>>>
>>> My source is something like:
>>>
>>> public void updateMainChannel(String channelId, String shortName) {
>>>   Transaction tx = graphDatabase.beginTx();
>>>   try {
>>>     Channel c = channelService.findChannelById(channelId);
>>>     //c = c.persist(); // this line makes no difference
>>>     c.setShortName(shortName);
>>>     channelService.saveChannel(c);
>>>     tx.success();
>>>   } catch (Exception ex) {
>>>     tx.failure();
>>>   } finally {
>>>     tx.close();
>>>   }
>>>  }
>>>
>>>
>>>  @Transactional
>>>  public class ChannelServiceImpl implements ChannelService{
>>>
>>>   @Autowired
>>>   private ChannelRepository channelRepository;
>>>
>>>   public Channel findChannelById(String id){
>>>   return channelRepository.findById(id);
>>>   }
>>>
>>>   public Channel saveChannel(Channel channel){
>>>   return channelRepository.save(channel);
>>>   }
>>>  }
>>>
>>>
>>>
>>>
>>>  @Repository
>>>  public interface ChannelRepository extends GraphRepository<Channel> {
>>>   public Channel findById(String id);
>>>  }
>>>
>>>  What I tried is:
>>>
>>> - client A calls the method updateChannel and get paused (debug mode and
>>> breakpoint) right after fetching the channel using the channelService
>>> - client B calls the method updateChannel without being stopped to
>>> update the same channel as client A
>>> - client A continues
>>>
>>> The result is right after client B has updated the channel, client B's
>>> value are saved in the database. But once client A finishes, its values are
>>> saved.
>>>
>>> I was expected an exception telling that the entity was modified since
>>> it was last fetched.
>>>
>>> Did I do something wrong or am I expecting too much ?
>>>
>>> I noticed that the Channel entity returned by the "findChannelById"
>>> method has a "DetachedEntityState", does it mean that the entity is
>>> detached ? I ask this because event if the name is explicit, this class has
>>> a isDetached() method which made me think that a DetachedEntityState can be
>>> attached. Finally I tried to "attach" it using persist() on it but it does
>>> not have any effect.
>>>
>>> Thanks in advance,
>>>
>>> Denis
>>>
>>> --
> 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