public void IncrementCounterVersion() { ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); var entity = new IntegerVersioned { Name = "int-vers" }; s.Save(entity); t.Commit(); s.Close(); int initialVersion = entity.Version; s = OpenSession(); t = s.BeginTransaction(); int count = s.CreateQuery("update versioned IntegerVersioned set name = name").ExecuteUpdate(); Assert.That(count, Is.EqualTo(1), "incorrect exec count"); t.Commit(); t = s.BeginTransaction(); entity = s.Load <IntegerVersioned>(entity.Id); Assert.That(entity.Version, Is.EqualTo(initialVersion + 1), "version not incremented"); s.Delete(entity); t.Commit(); s.Close(); }
public void InsertWithGeneratedVersionAndId() { // Make sure the env supports bulk inserts with generated ids... IEntityPersister persister = Sfi.GetEntityPersister(typeof(IntegerVersioned).FullName); IIdentifierGenerator generator = persister.IdentifierGenerator; if (!HqlSqlWalker.SupportsIdGenWithBulkInsertion(generator)) { return; } ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); var entity = new IntegerVersioned { Name = "int-vers" }; s.Save(entity); s.CreateQuery("select id, name, version from IntegerVersioned").List(); t.Commit(); s.Close(); long initialId = entity.Id; int initialVersion = entity.Version; s = OpenSession(); t = s.BeginTransaction(); int count = s.CreateQuery("insert into IntegerVersioned ( name, Data ) select name, Data from IntegerVersioned where id = :id") .SetInt64("id", entity.Id) .ExecuteUpdate(); t.Commit(); s.Close(); Assert.That(count, Is.EqualTo(1), "unexpected insertion count"); s = OpenSession(); t = s.BeginTransaction(); var created = (IntegerVersioned) s.CreateQuery("from IntegerVersioned where id <> :initialId").SetInt64("initialId", initialId).UniqueResult(); t.Commit(); s.Close(); Assert.That(created.Version, Is.EqualTo(initialVersion), "version was not seeded"); s = OpenSession(); t = s.BeginTransaction(); s.CreateQuery("delete IntegerVersioned").ExecuteUpdate(); t.Commit(); s.Close(); }
public void IncrementCounterVersion() { IntegerVersioned entity; using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { entity = new IntegerVersioned { Name = "int-vers", Data = "foo" }; s.Save(entity); t.Commit(); } int initialVersion = entity.Version; using (ISession s = OpenSession()) { using (ITransaction t = s.BeginTransaction()) { // Note: Update more than one column to showcase NH-3624, which involved losing some columns. /2014-07-26 int count = s.CreateQuery("update versioned IntegerVersioned set name = concat(name, 'upd'), Data = concat(Data, 'upd')") .ExecuteUpdate(); Assert.That(count, Is.EqualTo(1), "incorrect exec count"); t.Commit(); } using (ITransaction t = s.BeginTransaction()) { entity = s.Get <IntegerVersioned>(entity.Id); s.Delete(entity); t.Commit(); } } Assert.That(entity.Version, Is.EqualTo(initialVersion + 1), "version not incremented"); Assert.That(entity.Name, Is.EqualTo("int-versupd")); Assert.That(entity.Data, Is.EqualTo("fooupd")); }
public void IncrementCounterVersion() { IntegerVersioned entity; using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { entity = new IntegerVersioned {Name = "int-vers", Data = "foo"}; s.Save(entity); t.Commit(); } int initialVersion = entity.Version; using (ISession s = OpenSession()) { using (ITransaction t = s.BeginTransaction()) { // Note: Update more than one column to showcase NH-3624, which involved losing some columns. /2014-07-26 int count = s.CreateQuery("update versioned IntegerVersioned set name = concat(name, 'upd'), Data = concat(Data, 'upd')") .ExecuteUpdate(); Assert.That(count, Is.EqualTo(1), "incorrect exec count"); t.Commit(); } using (ITransaction t = s.BeginTransaction()) { entity = s.Get<IntegerVersioned>(entity.Id); s.Delete(entity); t.Commit(); } } Assert.That(entity.Version, Is.EqualTo(initialVersion + 1), "version not incremented"); Assert.That(entity.Name, Is.EqualTo("int-versupd")); Assert.That(entity.Data, Is.EqualTo("fooupd")); }
public void InsertWithGeneratedVersionAndId() { // Make sure the env supports bulk inserts with generated ids... IEntityPersister persister = sessions.GetEntityPersister(typeof (IntegerVersioned).FullName); IIdentifierGenerator generator = persister.IdentifierGenerator; if (!HqlSqlWalker.SupportsIdGenWithBulkInsertion(generator)) { return; } ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); var entity = new IntegerVersioned {Name = "int-vers"}; s.Save(entity); s.CreateQuery("select id, name, version from IntegerVersioned").List(); t.Commit(); s.Close(); long initialId = entity.Id; int initialVersion = entity.Version; s = OpenSession(); t = s.BeginTransaction(); int count = s.CreateQuery("insert into IntegerVersioned ( name, Data ) select name, Data from IntegerVersioned where id = :id") .SetInt64("id", entity.Id) .ExecuteUpdate(); t.Commit(); s.Close(); Assert.That(count, Is.EqualTo(1), "unexpected insertion count"); s = OpenSession(); t = s.BeginTransaction(); var created = (IntegerVersioned) s.CreateQuery("from IntegerVersioned where id <> :initialId").SetInt64("initialId", initialId).UniqueResult(); t.Commit(); s.Close(); Assert.That(created.Version, Is.EqualTo(initialVersion), "version was not seeded"); s = OpenSession(); t = s.BeginTransaction(); s.CreateQuery("delete IntegerVersioned").ExecuteUpdate(); t.Commit(); s.Close(); }
public void IncrementCounterVersion() { ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); var entity = new IntegerVersioned {Name = "int-vers"}; s.Save(entity); t.Commit(); s.Close(); int initialVersion = entity.Version; s = OpenSession(); t = s.BeginTransaction(); int count = s.CreateQuery("update versioned IntegerVersioned set name = name").ExecuteUpdate(); Assert.That(count, Is.EqualTo(1), "incorrect exec count"); t.Commit(); t = s.BeginTransaction(); entity = s.Load<IntegerVersioned>(entity.Id); Assert.That(entity.Version, Is.EqualTo(initialVersion + 1), "version not incremented"); s.Delete(entity); t.Commit(); s.Close(); }