Re: [hibernate-dev] Voldemort maven module for Hibernate OGM

2012-02-28 Thread Emmanuel Bernard
Hi Seiya,

Many thanks for this work and sorry for the delay in answering. I / we will 
definitively have a look. We have strong deadlines for mid-week on Hibernate 
Search, but I'll have more time after that.

Do you know why the Voldemort project does not push it to a maven repository. 
Is that because they are busy doing something else or is that because they do 
not want it for some other reasons? I am thinking of using the JBoss Maven repo 
and push it there.

Emmanuel

On 24 févr. 2012, at 23:01,   
wrote:

> Hi,
> 
> I wrote sample implementations for Voldemort,Redis and Riak on Hibernate OGM 
> a couple of weeks ago. Based on them, I created a Voldemort maven module and 
> put it on my github repository at https://github.com/seiyak/hibernate-ogm. 
> The project was forked from the original one and the modifications were 
> applied on it following Emmanuel's advice on the previous mailing list. I put 
> README.md in hibernate-ogm-voldemort directory, so please read it before 
> typing 'mvn clean install'. Voldemort needs to be installed manually into the 
> local maven repository as of the version 0.90.1.
> 
> According to the supplied tests, it looks fine. However, I need advice and 
> suggestions to make it better,cleaner and right if there is something 
> incorrect. I'll ask several questions that I got during the programming later.
> 
> Please let me know what you think of the code. If it's worth of a part of 
> Hibernate OGM, I would like to contribute it.
> 
> Thank you
> Seiya 
> ___
> hibernate-dev mailing list
> hibernate-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev


___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


[hibernate-dev] infinispan test fails occasionally on hudson

2012-02-28 Thread Strong Liu
could someone take a look?

org.hibernate.test.cache.infinispan.functional.ConcurrentWriteTest.testManyUsers

Error Message

java.util.concurrent.TimeoutException
Stacktrace

java.util.concurrent.TimeoutException
at java.util.concurrent.CyclicBarrier.dowait(CyclicBarrier.java:222)
at java.util.concurrent.CyclicBarrier.await(CyclicBarrier.java:399)
at 
org.hibernate.test.cache.infinispan.functional.ConcurrentWriteTest.testManyUsers(ConcurrentWriteTest.java:223)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at 
org.hibernate.testing.junit4.ExtendedFrameworkMethod.invokeExplosively(ExtendedFrameworkMethod.java:63)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at 
org.hibernate.testing.junit4.FailureExpectedHandler.evaluate(FailureExpectedHandler.java:59)
at 
org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at 
org.hibernate.testing.junit4.BeforeClassCallbackHandler.evaluate(BeforeClassCallbackHandler.java:43)
at 
org.hibernate.testing.junit4.AfterClassCallbackHandler.evaluate(AfterClassCallbackHandler.java:42)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:51)
at 
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:63)
at 
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at 
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at 
org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
at 
org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:75)
at $Proxy3.processTestClass(Unknown Source)
at 
org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at 
org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at 
org.gradle.messaging.remote.internal.TypeCastDispatch.dispatch(TypeCastDispatch.java:30)
at 
org.gradle.messaging.remote.internal.WorkerProtocol.handleIncoming(WorkerProtocol.java:53)
at 
org.gradle.messaging.remote.internal.WorkerProtocol.handleIncoming(WorkerProtocol.java:31)
at 
org.gradle.messaging.remote.internal.ProtocolStack$ProtocolStage.handleIncoming(ProtocolStack.java:167)
at 
org.gradle.messaging.remote.internal.ProtocolStack$BottomStage.handleIncoming(ProtocolStack.java:277)
at 
org.gradle.messaging.remote.internal.ProtocolStack$BottomConnection$1.run(ProtocolStack.java:299)
  

Re: [hibernate-dev] Voldemort maven module for Hibernate OGM

2012-02-28 Thread Emmanuel Bernard
Just for my personal record, the process to upload a 3rd party dependency to 
JBoss repos is here 
https://community.jboss.org/wiki/UploadingAThirdpartyArtifact

On 28 févr. 2012, at 10:06, Emmanuel Bernard wrote:

> Hi Seiya,
> 
> Many thanks for this work and sorry for the delay in answering. I / we will 
> definitively have a look. We have strong deadlines for mid-week on Hibernate 
> Search, but I'll have more time after that.
> 
> Do you know why the Voldemort project does not push it to a maven repository. 
> Is that because they are busy doing something else or is that because they do 
> not want it for some other reasons? I am thinking of using the JBoss Maven 
> repo and push it there.
> 
> Emmanuel
> 
> On 24 févr. 2012, at 23:01,  
>  wrote:
> 
>> Hi,
>> 
>> I wrote sample implementations for Voldemort,Redis and Riak on Hibernate OGM 
>> a couple of weeks ago. Based on them, I created a Voldemort maven module and 
>> put it on my github repository at https://github.com/seiyak/hibernate-ogm. 
>> The project was forked from the original one and the modifications were 
>> applied on it following Emmanuel's advice on the previous mailing list. I 
>> put README.md in hibernate-ogm-voldemort directory, so please read it before 
>> typing 'mvn clean install'. Voldemort needs to be installed manually into 
>> the local maven repository as of the version 0.90.1.
>> 
>> According to the supplied tests, it looks fine. However, I need advice and 
>> suggestions to make it better,cleaner and right if there is something 
>> incorrect. I'll ask several questions that I got during the programming 
>> later.
>> 
>> Please let me know what you think of the code. If it's worth of a part of 
>> Hibernate OGM, I would like to contribute it.
>> 
>> Thank you
>> Seiya 
>> ___
>> hibernate-dev mailing list
>> hibernate-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> 
> 
> ___
> hibernate-dev mailing list
> hibernate-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev


___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


[hibernate-dev] Meeting

2012-02-28 Thread Steve Ebersole
Stuck in traffic and wont be able to make todays meeting

st...@hibernate.org
http://hibernate.org
___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


[hibernate-dev] ERROR SqlExceptionHelper:144 - Table "GIVENIDSTRENTITY_AUD" not found;

2012-02-28 Thread Strong Liu
Hi Adam,

when running hibernate test suite, this test 
(org.hibernate.envers.test.integration.merge.AddDelTest) always fail with the 
following message:

22:09:58,494 DEBUG SQL:104 - 
create table GIVENIDSTRENTITY_AUD (
id integer not null,
REV integer not null,
REVTYPE tinyint,
data varchar(255),
primary key (id, REV)
)
Hibernate: 
create table GIVENIDSTRENTITY_AUD (
id integer not null,
REV integer not null,
REVTYPE tinyint,
data varchar(255),
primary key (id, REV)
)

22:09:58,851 DEBUG SQL:104 - 
insert 
into
GIVENIDSTRENTITY_AUD
(REVTYPE, data, id, REV) 
values
(?, ?, ?, ?)
Hibernate: 
insert 
into
GIVENIDSTRENTITY_AUD
(REVTYPE, data, id, REV) 
values
(?, ?, ?, ?)
22:09:59,032  WARN SqlExceptionHelper:143 - SQL Error: 42102, SQLState: 42S02
22:09:59,033 ERROR SqlExceptionHelper:144 - Table "GIVENIDSTRENTITY_AUD" not 
found; SQL statement:
select givenidstr0_.REV as col_0_0_ from GIVENIDSTRENTITY_AUD givenidstr0_ 
cross join REVINFO defaultrev1_ where givenidstr0_.id=? and 
givenidstr0_.REV=defaultrev1_.REV order by givenidstr0_.REV asc [42102-145]

org.hibernate.exception.SQLGrammarException: Table "GIVENIDSTRENTITY_AUD" not 
found; SQL statement:
select givenidstr0_.REV as col_0_0_ from GIVENIDSTRENTITY_AUD givenidstr0_ 
cross join REVINFO defaultrev1_ where givenidstr0_.id=? and 
givenidstr0_.REV=defaultrev1_.REV order by givenidstr0_.REV asc [42102-145]
at 
org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:122)
at 
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at 
org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:146)
at 
org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy18.prepareStatement(Unknown Source)
at 
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:147)
at 
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:166)
at 
org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:145)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1720)
at org.hibernate.loader.Loader.doQuery(Loader.java:828)
at 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
at org.hibernate.loader.Loader.doList(Loader.java:2447)
-
Best Regards,

Strong Liu 
http://about.me/stliu/bio

___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


[hibernate-dev] Natural ids and inheritance

2012-02-28 Thread Steve Ebersole
Another discrepancy between hbm.xml and annotations currently is the 
definition of natural ids.  hbm.xml only allows natural ids to be 
defined on the root entity, annotations allow it to be defined on any 
level of the hierarchy, even across classes.

We need to decide what we want to support.  2 things to consider here are:
1) whether we limit @NaturalId to only root entity meta (and maybe 
@MappedSuperclass for root entities)
2) if we do not limit, what @NaturalId spread across a hierarchy "means"

In the second point, consider:
class A
 @NaturalId
 key1

class AA extends A
 @NaturalId
 key2

Personally I vote for limiting @NaturalId to the root entity.  This 
allows caching to work just like it does for identifiers.

-- 
st...@hibernate.org
http://hibernate.org

___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


Re: [hibernate-dev] Natural ids and inheritance

2012-02-28 Thread Emmanuel Bernard

On 28 févr. 2012, at 17:59, Steve Ebersole wrote:

> Another discrepancy between hbm.xml and annotations currently is the 
> definition of natural ids.  hbm.xml only allows natural ids to be 
> defined on the root entity, annotations allow it to be defined on any 
> level of the hierarchy, even across classes.
> 
> We need to decide what we want to support.  2 things to consider here are:
> 1) whether we limit @NaturalId to only root entity meta (and maybe 
> @MappedSuperclass for root entities)
> 2) if we do not limit, what @NaturalId spread across a hierarchy "means"
> 
> In the second point, consider:
> class A
> @NaturalId
> key1
> 
> class AA extends A
> @NaturalId
> key2
> 
> Personally I vote for limiting @NaturalId to the root entity.  This 
> allows caching to work just like it does for identifiers.

I agree with you.
___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


Re: [hibernate-dev] Voldemort maven module for Hibernate OGM

2012-02-28 Thread Seiya Kawashima
Thank you for your response.

Unfortunately I'm not quite sure the reason that the Voldemort project
doesn't push it to the maven repository. There are questions and
discussions about the usage of the repository on the Internet, but it seems
to me that there is no clear answer for the reason. Or I just have not
noticed the existence.

I have several questions about hibernate ogm core. These parts are that
particularly I would like you to take a look at. The implementations might
be awkward or incorrect.

   1. To implement datastore providers for hibernate ogm, there are two
   code styles. One is from MapBasedDatastoreProvider and the other is from
   Infinispan and EhCache datastore providers. When we add other datastore
   providers, which style should  we follow ? I've been referencing
   MapBasedDatastoreProvider from the beginning of my experiment on Hibernate
   OGM, the implementation followed  MapBasedDatastoreProvider.
   2. To implement VoldemortDatastoreProvider.setNextValue() method, I was
   confused a little bit. I originally referenced other datastore
   and implemented it, but on VoldemortDialectTest.testIsThreadSafe() which
   tests concurrency on the method, my original
implementationran poorly because it
   required an exclusive lock and datastore access every time the method is
   called. And then I modified the method and got the current
   implementation in VoldemortDatastoreProvider. However, it doesn't quite
   reduce the number of accesses to the underlying datastore as I wanted,
   but allows concurrency. As a result, I put a flag to store the next
valueon the datastore or not. I'm not quite sure if this is the
rightimplementation or not.
   3. To implement GridDialect.getLockingStrategy() method, the returned
   object whose type is LockingStratey represents locks on underlying datatore
   according to the javadoc. How should we implement this method when the
   underlying datastore doesn't explicitly expose locks as objects ? Looks
   like that Infinispan exposes some lock objects, so they are instantiated
   and returned from the method. Voldemort has the concept of optimistic lock
   exposing a method called
voldemort.client.StoreClient.applyUpdateand
Redis also has the concept exposing a method called
   
watchand
the
   description  . I use Jedis
2.0.0as Redis client.

Thank you once again.

Seiya



On Tue, Feb 28, 2012 at 3:10 AM, Emmanuel Bernard wrote:

> Just for my personal record, the process to upload a 3rd party dependency
> to JBoss repos is here
> https://community.jboss.org/wiki/UploadingAThirdpartyArtifact
>
> On 28 févr. 2012, at 10:06, Emmanuel Bernard wrote:
>
> > Hi Seiya,
> >
> > Many thanks for this work and sorry for the delay in answering. I / we
> will definitively have a look. We have strong deadlines for mid-week on
> Hibernate Search, but I'll have more time after that.
> >
> > Do you know why the Voldemort project does not push it to a maven
> repository. Is that because they are busy doing something else or is that
> because they do not want it for some other reasons? I am thinking of using
> the JBoss Maven repo and push it there.
> >
> > Emmanuel
> >
> > On 24 févr. 2012, at 23:01,  <
> skawash...@uchicago.edu> wrote:
> >
> >> Hi,
> >>
> >> I wrote sample implementations for Voldemort,Redis and Riak on
> Hibernate OGM a couple of weeks ago. Based on them, I created a Voldemort
> maven module and put it on my github repository at
> https://github.com/seiyak/hibernate-ogm. The project was forked from the
> original one and the modifications were applied on it following Emmanuel's
> advice on the previous mailing list. I put README.md in
> hibernate-ogm-voldemort directory, so please read it before typing 'mvn
> clean install'. Voldemort needs to be installed manually into the local
> maven repository as of the version 0.90.1.
> >>
> >> According to the supplied tests, it looks fine. However, I need advice
> and suggestions to make it better,cleaner and right if there is something
> incorrect. I'll ask several questions that I got during the programming
> later.
> >>
> >> Please let me know what you think of the code. If it's worth of a part
> of Hibernate OGM, I would like to contribute it.
> >>
> >> Thank you
> >> Seiya
> >> ___
> >> hibernate-dev mailing list
> >> hibernate-dev@lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >
> >
> > ___
> > hibernate-dev mailing list
> > hibernate-dev@lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
>


-- 
Thank you
Seiya
___
hibernate-dev mailing list
hiber

Re: [hibernate-dev] Natural ids and inheritance

2012-02-28 Thread John Verhaeg
I probably don't understand the complexities with this, but wouldn't the ID 
values in AA have to be completely independent of the values in A?

> On 28 févr. 2012, at 17:59, Steve Ebersole wrote:
> 
>> Another discrepancy between hbm.xml and annotations currently is the 
>> definition of natural ids.  hbm.xml only allows natural ids to be 
>> defined on the root entity, annotations allow it to be defined on any 
>> level of the hierarchy, even across classes.
>> 
>> We need to decide what we want to support.  2 things to consider here are:
>> 1) whether we limit @NaturalId to only root entity meta (and maybe 
>> @MappedSuperclass for root entities)
>> 2) if we do not limit, what @NaturalId spread across a hierarchy "means"
>> 
>> In the second point, consider:
>> class A
>>@NaturalId
>>key1
>> 
>> class AA extends A
>>@NaturalId
>>key2
>> 
>> Personally I vote for limiting @NaturalId to the root entity.  This 
>> allows caching to work just like it does for identifiers.

JPAV





___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev


Re: [hibernate-dev] Voldemort maven module for Hibernate OGM

2012-02-28 Thread Emmanuel Bernard

On 28 févr. 2012, at 19:41, Seiya Kawashima wrote:

> Thank you for your response.
> 
> Unfortunately I'm not quite sure the reason that the Voldemort project 
> doesn't push it to the maven repository. There are questions and discussions 
> about the usage of the repository on the Internet, but it seems to me that 
> there is no clear answer for the reason. Or I just have not noticed the 
> existence.
> 
> I have several questions about hibernate ogm core. These parts are that 
> particularly I would like you to take a look at. The implementations might be 
> awkward or incorrect.
> To implement datastore providers for hibernate ogm, there are two code 
> styles. One is from MapBasedDatastoreProvider and the other is from 
> Infinispan and EhCache datastore providers. When we add other datastore 
> providers, which style should  we follow ? I've been referencing 
> MapBasedDatastoreProvider from the beginning of my experiment on Hibernate 
> OGM, the implementation followed  MapBasedDatastoreProvider.

By style you mean architectural approach or code style (tab vs space)? If the 
former, then the MapBasedDatastoreProvider is a toy useful for us to abstract 
Hibernate OGM engine from a specific provider. You should use Infinispan as 
your example. But remember that Infinispan is full transactional and which 
makes the dialect somewhat easier to implement.

> To implement VoldemortDatastoreProvider.setNextValue() method, I was confused 
> a little bit. I originally referenced other datastore 
> and implemented it, but on VoldemortDialectTest.testIsThreadSafe() which 
> tests concurrency on the method, my original implementation ran poorly 
> because it required an exclusive lock and datastore access every time the 
> method is called. And then I modified the method and got the current 
> implementation in VoldemortDatastoreProvider. However, it doesn't quite 
> reduce the number of accesses to the underlying datastore as I wanted, but 
> allows concurrency. As a result, I put a flag to store the next value on the 
> datastore or not. I'm not quite sure if this is the right implementation or 
> not.
Some NoSQL stores have very efficient next value operations and this method is 
for them. You should try and make as efficient as possible but make sure it's 
safe. Your flag does not look like safe but I have not had time to investigate 
yet.
And don't worry too much about performance. Properly set, Hibernate OGM will 
only call this method every 50 or so id generation required as we use a hi/lo 
algorithm by default to generate sequential ids.

> To implement GridDialect.getLockingStrategy() method, the returned object 
> whose type is LockingStratey represents locks on underlying datatore 
> according to the javadoc. How should we implement this method when the 
> underlying datastore doesn't explicitly expose locks as objects ? Looks like 
> that Infinispan exposes some lock objects, so they are instantiated and 
> returned from the method. Voldemort has the concept of optimistic lock 
> exposing a method called voldemort.client.StoreClient.applyUpdate and Redis 
> also has the concept exposing a method called watch and the description . I 
> use Jedis 2.0.0 as Redis client.
Now that's clearly the hardest part to map and we will have to chat on IRC 
about that. Hibernate has the notion of optimistic locking with this 
definition: if somebody applies a change before a change I am applying, then I 
lose. To do that it uses version number comparison and update where style 
operations.

Now applyUpdate seems to be slightly different in the sense that they try and 
reapply a set of operations until they are not stale. That looks closer to a 
transaction than the Hibernate optimistic locking. But I need to have a chat 
with you to understand how people use it.

Watch seems more akeen to pessimistic locking which you have to implement as 
well in LockingStrategy. But again, we will need to have a discussion about how 
people use that. Pessimistic locking in Hibernate means that I am guaranteed 
that noone will be able to do anything on my entry until I release the lock 
(usually by committing the transaction.

Form this discussion it also seems that we might need to have datastores and 
dialect implement the Hibernate transaction object so that the datastore can 
properly demarcate when isolation starts and when it ends. But that's clearly 
not abstracted yet in Hibernate OGM.

Emmanuel

___
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev