public void Update() { // prepare some test data... User user; using (ISession session = OpenSession()) { session.BeginTransaction(); user = new User(); user.UserName = "******"; user.Email = "*****@*****.**"; user.Password = "******"; session.Save(user); session.Transaction.Commit(); } // 'user' is now a detached entity, so lets change a property and reattch... user.Password = "******"; using (ISession session = OpenSession()) { session.BeginTransaction(); session.Update(user); session.Transaction.Commit(); } // clean up using (ISession session = OpenSession()) { session.BeginTransaction(); session.Delete(user); session.Transaction.Commit(); } }
public void NaturalIdCheck() { ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); User u = new User("steve", "superSecret"); s.Persist(u); u.UserName = "******"; try { s.Flush(); Assert.Fail(); } catch (HibernateException) {} u.UserName = "******"; s.Delete(u); t.Commit(); s.Close(); }
public void NaturalIdCache() { ISession s = OpenSession(); s.BeginTransaction(); User u = new User("steve", "superSecret"); s.Persist(u); s.Transaction.Commit(); s.Close(); sessions.Statistics.Clear(); s = OpenSession(); s.BeginTransaction(); u = (User) s.CreateCriteria(typeof (User)).Add(Restrictions.NaturalId().Set("UserName", "steve")).SetCacheable(true). UniqueResult(); Assert.That(u, Is.Not.Null); s.Transaction.Commit(); s.Close(); Assert.AreEqual(1, sessions.Statistics.QueryExecutionCount); Assert.AreEqual(0, sessions.Statistics.QueryCacheHitCount); Assert.AreEqual(1, sessions.Statistics.QueryCachePutCount); s = OpenSession(); s.BeginTransaction(); User v = new User("gavin", "supsup"); s.Persist(v); s.Transaction.Commit(); s.Close(); sessions.Statistics.Clear(); s = OpenSession(); s.BeginTransaction(); u = (User) s.CreateCriteria(typeof(User)).Add(Restrictions.NaturalId().Set("UserName", "steve")).SetCacheable(true). UniqueResult(); Assert.That(u, Is.Not.Null); Assert.AreEqual(0, sessions.Statistics.QueryExecutionCount); Assert.AreEqual(1, sessions.Statistics.QueryCacheHitCount); u = (User) s.CreateCriteria(typeof(User)).Add(Restrictions.NaturalId().Set("UserName", "steve")).SetCacheable(true). UniqueResult(); Assert.That(u, Is.Not.Null); Assert.AreEqual(0, sessions.Statistics.QueryExecutionCount); Assert.AreEqual(2, sessions.Statistics.QueryCacheHitCount); s.Transaction.Commit(); s.Close(); s = OpenSession(); s.BeginTransaction(); s.Delete("from User"); s.Transaction.Commit(); s.Close(); }