added test for stale merging
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@14180 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
0705b2ca78
commit
d3ddcc4c55
|
@ -11,6 +11,7 @@ import org.hibernate.Hibernate;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
import org.hibernate.NonUniqueObjectException;
|
import org.hibernate.NonUniqueObjectException;
|
||||||
|
import org.hibernate.StaleObjectStateException;
|
||||||
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
|
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
|
||||||
import org.hibernate.criterion.Projections;
|
import org.hibernate.criterion.Projections;
|
||||||
|
|
||||||
|
@ -27,6 +28,39 @@ public class MergeTest extends AbstractOperationTestCase {
|
||||||
return new FunctionalTestClassTestSuite( MergeTest.class );
|
return new FunctionalTestClassTestSuite( MergeTest.class );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testMergeStaleVersionFails() throws Exception {
|
||||||
|
Session s = openSession();
|
||||||
|
s.beginTransaction();
|
||||||
|
VersionedEntity entity = new VersionedEntity( "entity", "entity" );
|
||||||
|
s.persist( entity );
|
||||||
|
s.getTransaction().commit();
|
||||||
|
s.close();
|
||||||
|
|
||||||
|
// make the detached 'entity' reference stale...
|
||||||
|
s = openSession();
|
||||||
|
s.beginTransaction();
|
||||||
|
VersionedEntity entity2 = ( VersionedEntity ) s.get( VersionedEntity.class, entity.getId() );
|
||||||
|
entity2.setName( "entity-name" );
|
||||||
|
s.getTransaction().commit();
|
||||||
|
s.close();
|
||||||
|
|
||||||
|
// now try to reattch it
|
||||||
|
s = openSession();
|
||||||
|
s.beginTransaction();
|
||||||
|
try {
|
||||||
|
s.merge( entity );
|
||||||
|
s.getTransaction().commit();
|
||||||
|
fail( "was expecting staleness error" );
|
||||||
|
}
|
||||||
|
catch ( StaleObjectStateException expected ) {
|
||||||
|
// expected outcome...
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
s.getTransaction().rollback();
|
||||||
|
s.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void testMergeBidiPrimayKeyOneToOne() throws Exception {
|
public void testMergeBidiPrimayKeyOneToOne() throws Exception {
|
||||||
Session s = openSession();
|
Session s = openSession();
|
||||||
s.beginTransaction();
|
s.beginTransaction();
|
||||||
|
|
Loading…
Reference in New Issue