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.
