[hibernate-commits] Hibernate SVN: r11688 - in trunk/HibernateExt/shards/src: java/org/hibernate/shards/session and 2 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Jun 13 23:27:43 EDT 2007
Author: buurzgoth
Date: 2007-06-13 23:27:42 -0400 (Wed, 13 Jun 2007)
New Revision: 11688
Modified:
trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java
trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java
trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java
trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java
trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java
Log:
Add replicate(). Inline some stuff from Shard.
Modified: trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java
===================================================================
--- trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java 2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java 2007-06-14 03:27:42 UTC (rev 11688)
@@ -19,7 +19,6 @@
package org.hibernate.shards;
import org.hibernate.Criteria;
-import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.classic.Session;
import org.hibernate.engine.SessionFactoryImplementor;
@@ -31,7 +30,6 @@
import org.hibernate.shards.query.ShardedQuery;
import org.hibernate.shards.session.OpenSessionEvent;
-import java.io.Serializable;
import java.util.List;
import java.util.Set;
@@ -90,131 +88,16 @@
Criteria establishCriteria(ShardedCriteria shardedCriteria);
/**
- * @see Session#get(Class, Serializable)
- */
- Object get(Class<?> clazz, Serializable id);
-
- /**
- * @see Session#get(Class, Serializable, LockMode)
- */
- Object get(Class<?> clazz, Serializable id, LockMode lockMode);
-
- /**
- * @see Session#get(String, Serializable)
- */
- Object get(String entityName, Serializable id);
-
- /**
- * @see Session#get(String, Serializable, LockMode)
- */
- Object get(String entityName, Serializable id, LockMode lockMode);
-
- /**
* @see Criteria#list()
*/
List<Object> list(CriteriaId criteriaId);
/**
- * @see Session#load(Class, Serializable)
- */
- Object load(Class<?> clazz, Serializable id);
-
- /**
- * @see Session#load(Class, Serializable, LockMode)
- */
- Object load(Class<?> clazz, Serializable id, LockMode lockMode);
-
- /**
- * @see Session#load(String, Serializable)
- */
- Object load(String entityName, Serializable id);
-
- /**
- * @see Session#load(String, Serializable, LockMode)
- */
- Object load(String entityName, Serializable id, LockMode lockMode);
-
- /**
- * @see Session#load(Object, Serializable)
- */
- void load(Object object, Serializable id);
-
- /**
- * @see Session#lock(Object, LockMode)
- */
- void lock(Object object, LockMode lockMode);
-
- /**
- * @see Session#lock(String, Object, LockMode)
- */
- void lock(String entityName, Object object, LockMode lockMode);
-
- /**
* @see Criteria#uniqueResult()
*/
Object uniqueResult(CriteriaId criteriaId);
/**
- * @see Session#save(String, Object)
- */
- Serializable save(String entityName, Object obj);
-
- /**
- * @see Session#persist(String, Object)
- */
- void persist(String entityName, Object obj);
-
- /**
- * @see Session#refresh(Object)
- */
- void refresh(Object object);
-
- /**
- * @see Session#refresh(Object, LockMode)
- */
- void refresh(Object object, LockMode lockMode);
-
- /**
- * @see Session#saveOrUpdate(Object)
- */
- void saveOrUpdate(Object obj);
-
- /**
- * @see Session#saveOrUpdate(String, Object)
- */
- void saveOrUpdate(String entityName, Object obj);
-
- /**
- * @see Session#update(Object)
- */
- void update(Object object);
-
- /**
- * @see Session#update(String, Object)
- */
- void update(String entityName, Object obj);
-
- /**
- * @see Session#delete(Object)
- */
- void delete(Object object);
-
- /**
- * @see Session#delete(String, Object)
- */
- void delete(String entityName, Object object);
-
- /**
- * @see Session#getCurrentLockMode(Object)
- */
- LockMode getCurrentLockMode(Object object);
-
- /**
- * @see Session#getEntityName(Object)
- */
- String getEntityName(Object object);
-
- /**
* @return the ids of the virtual shards that are mapped to this physical shard.
* The returned Set is unmodifiable.
*/
@@ -248,8 +131,4 @@
* @see Query#uniqueResult()
*/
Object uniqueResult(QueryId queryId);
-
- void merge(Object object);
-
- void merge(String entityName, Object object);
}
Modified: trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java
===================================================================
--- trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java 2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java 2007-06-14 03:27:42 UTC (rev 11688)
@@ -20,7 +20,6 @@
import org.hibernate.Criteria;
import org.hibernate.Interceptor;
-import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.classic.Session;
import org.hibernate.engine.SessionFactoryImplementor;
@@ -36,7 +35,6 @@
import org.hibernate.shards.util.Preconditions;
import org.hibernate.shards.util.Sets;
-import java.io.Serializable;
import java.util.*;
/**
@@ -245,50 +243,6 @@
return hashCode;
}
- public Object get(Class<?> clazz, Serializable id) {
- return establishSession().get(clazz, id);
- }
-
- public Object get(Class<?> clazz, Serializable id, LockMode lockMode) {
- return establishSession().get(clazz, id, lockMode);
- }
-
- public Object get(String entityName, Serializable id) {
- return establishSession().get(entityName, id);
- }
-
- public Object get(String entityName, Serializable id, LockMode lockMode) {
- return establishSession().get(entityName, id, lockMode);
- }
-
- public Object load(Class<?> clazz, Serializable id) {
- return establishSession().load(clazz, id);
- }
-
- public Object load(Class<?> clazz, Serializable id, LockMode lockMode) {
- return establishSession().load(clazz, id, lockMode);
- }
-
- public Object load(String entityName, Serializable id) {
- return establishSession().load(entityName, id);
- }
-
- public Object load(String entityName, Serializable id, LockMode lockMode) {
- return establishSession().load(entityName, id, lockMode);
- }
-
- public void load(Object object, Serializable id) {
- establishSession().load(object, id);
- }
-
- public void lock(Object object, LockMode lockMode) {
- establishSession().lock(object, lockMode);
- }
-
- public void lock(String entityName, Object object, LockMode lockMode) {
- establishSession().lock(entityName, object, lockMode);
- }
-
@SuppressWarnings("unchecked")
public List<Object> list(CriteriaId criteriaId) {
return criteriaMap.get(criteriaId).list();
@@ -332,54 +286,6 @@
return criteriaEventMap;
}
- public Serializable save(String entityName, Object obj) {
- return establishSession().save(entityName, obj);
- }
-
- public void persist(String entityName, Object obj) {
- establishSession().persist(entityName, obj);
- }
-
- public void refresh(Object object) {
- establishSession().refresh(object);
- }
-
- public void refresh(Object object, LockMode lockMode) {
- establishSession().refresh(object, lockMode);
- }
-
- public void saveOrUpdate(Object obj) {
- establishSession().saveOrUpdate(obj);
- }
-
- public void saveOrUpdate(String entityName, Object obj) {
- establishSession().saveOrUpdate(entityName, obj);
- }
-
- public void update(Object object) {
- establishSession().update(object);
- }
-
- public void update(String entityName, Object obj) {
- establishSession().update(entityName, obj);
- }
-
- public void delete(Object object) {
- establishSession().delete(object);
- }
-
- public void delete(String entityName, Object object) {
- establishSession().delete(entityName, object);
- }
-
- public LockMode getCurrentLockMode(Object object) {
- return establishSession().getCurrentLockMode(object);
- }
-
- public String getEntityName(Object object) {
- return establishSession().getEntityName(object);
- }
-
@Override
public String toString() {
return getSessionFactoryImplementor().getSettings().getSessionFactoryName();
@@ -425,12 +331,5 @@
events.addLast(event);
}
- public void merge(Object object) {
- establishSession().merge(object);
- }
-
- public void merge(String entityName, Object object) {
- establishSession().merge(entityName, object);
- }
}
Modified: trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java
===================================================================
--- trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java 2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java 2007-06-14 03:27:42 UTC (rev 11688)
@@ -238,7 +238,7 @@
public Object get(final Class clazz, final Serializable id) throws HibernateException {
ShardOperation<Object> shardOp = new ShardOperation<Object>() {
public Object execute(Shard shard) {
- return shard.get(clazz, id);
+ return shard.establishSession().get(clazz, id);
}
public String getOperationName() {
@@ -252,7 +252,7 @@
throws HibernateException {
ShardOperation<Object> shardOp = new ShardOperation<Object>() {
public Object execute(Shard shard) {
- return shard.get(clazz, id, lockMode);
+ return shard.establishSession().get(clazz, id, lockMode);
}
public String getOperationName() {
@@ -267,7 +267,7 @@
throws HibernateException {
ShardOperation<Object> shardOp = new ShardOperation<Object>() {
public Object execute(Shard shard) {
- return shard.get(entityName, id);
+ return shard.establishSession().get(entityName, id);
}
public String getOperationName() {
@@ -281,7 +281,7 @@
throws HibernateException {
ShardOperation<Object> shardOp = new ShardOperation<Object>() {
public Object execute(Shard shard) {
- return shard.get(entityName, id, lockMode);
+ return shard.establishSession().get(entityName, id, lockMode);
}
public String getOperationName() {
@@ -497,7 +497,7 @@
List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
ShardResolutionStrategyDataImpl(clazz, id));
if (shardIds.size() == 1) {
- return shardIdsToShards.get(shardIds.get(0)).load(clazz, id, lockMode);
+ return shardIdsToShards.get(shardIds.get(0)).establishSession().load(clazz, id, lockMode);
} else {
Object result = get(clazz, id, lockMode);
if (result == null) {
@@ -512,7 +512,7 @@
List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
ShardResolutionStrategyDataImpl(entityName, id));
if (shardIds.size() == 1) {
- return shardIdsToShards.get(shardIds.get(0)).load(entityName, id, lockMode);
+ return shardIdsToShards.get(shardIds.get(0)).establishSession().load(entityName, id, lockMode);
} else {
Object result = get(entityName, id, lockMode);
if (result == null) {
@@ -527,7 +527,7 @@
List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
ShardResolutionStrategyDataImpl(clazz, id));
if (shardIds.size() == 1) {
- return shardIdsToShards.get(shardIds.get(0)).load(clazz, id);
+ return shardIdsToShards.get(shardIds.get(0)).establishSession().load(clazz, id);
} else {
Object result = get(clazz, id);
if (result == null) {
@@ -542,7 +542,7 @@
List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
ShardResolutionStrategyDataImpl(entityName, id));
if (shardIds.size() == 1) {
- return shardIdsToShards.get(shardIds.get(0)).load(entityName, id);
+ return shardIdsToShards.get(shardIds.get(0)).establishSession().load(entityName, id);
} else {
Object result = get(entityName, id);
if (result == null) {
@@ -556,7 +556,7 @@
List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
ShardResolutionStrategyDataImpl(object.getClass(), id));
if (shardIds.size() == 1) {
- shardIdsToShards.get(shardIds.get(0)).load(object, id);
+ shardIdsToShards.get(shardIds.get(0)).establishSession().load(object, id);
} else {
Object result = get(object.getClass(), id);
if (result == null) {
@@ -564,25 +564,36 @@
} else {
Shard objectShard = getShardForObject(result, shardIdListToShardList(shardIds));
evict(result);
- objectShard.load(object, id);
+ objectShard.establishSession().load(object, id);
}
}
}
- /**
- * Unsupported. This is a scope decision, not a technical decision.
- */
public void replicate(Object object, ReplicationMode replicationMode)
throws HibernateException {
- throw new UnsupportedOperationException();
+ replicate(null, object, replicationMode);
}
- /**
- * Unsupported. This is a scope decision, not a technical decision.
- */
public void replicate(String entityName, Object object,
ReplicationMode replicationMode) throws HibernateException {
- throw new UnsupportedOperationException();
+ Serializable id = extractId(object);
+ List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
+ ShardResolutionStrategyDataImpl(object.getClass(), id));
+ if (shardIds.size() == 1) {
+ shardIdsToShards.get(shardIds.get(0)).establishSession().replicate(entityName, object, replicationMode);
+ } else {
+ Object result = null;
+ if (id != null) result = get(object.getClass(), id);
+ if (result == null) { // non-persisted object
+ ShardId shardId = selectShardIdForNewObject(object);
+ setCurrentSubgraphShardId(shardId);
+ shardIdsToShards.get(shardId).establishSession().replicate(entityName, object, replicationMode);
+ } else {
+ Shard objectShard = getShardForObject(result, shardIdListToShardList(shardIds));
+ evict(result);
+ objectShard.establishSession().replicate(entityName, object, replicationMode);
+ }
+ }
}
public Serializable save(String entityName, Object object) throws HibernateException {
@@ -594,7 +605,7 @@
Preconditions.checkNotNull(shardId);
setCurrentSubgraphShardId(shardId);
log.debug(String.format("Saving object of type %s to shard %s", object.getClass(), shardId));
- return shardIdsToShards.get(shardId).save(entityName, object);
+ return shardIdsToShards.get(shardId).establishSession().save(entityName, object);
}
ShardId selectShardIdForNewObject(Object obj) {
@@ -728,11 +739,11 @@
throws HibernateException {
SaveOrUpdateOperation op = new SaveOrUpdateOperation() {
public void saveOrUpdate(Shard shard, Object object) {
- shard.saveOrUpdate(entityName, object);
+ shard.establishSession().saveOrUpdate(entityName, object);
}
public void merge(Shard shard, Object object) {
- shard.merge(entityName, object);
+ shard.establishSession().merge(entityName, object);
}
};
applySaveOrUpdateOperation(op, object);
@@ -784,11 +795,11 @@
private static final UpdateOperation SIMPLE_UPDATE_OPERATION =
new UpdateOperation() {
public void update(Shard shard, Object object) {
- shard.update(object);
+ shard.establishSession().update(object);
}
public void merge(Shard shard, Object object) {
- shard.merge(object);
+ shard.establishSession().merge(object);
}
};
@@ -838,11 +849,11 @@
throws HibernateException {
UpdateOperation op = new UpdateOperation() {
public void update(Shard shard, Object object) {
- shard.update(entityName, object);
+ shard.establishSession().update(entityName, object);
}
public void merge(Shard shard, Object object) {
- shard.merge(entityName, object);
+ shard.establishSession().merge(entityName, object);
}
};
applyUpdateOperation(op, object);
@@ -887,7 +898,7 @@
Preconditions.checkNotNull(shardId);
setCurrentSubgraphShardId(shardId);
log.debug(String.format("Persisting object of type %s to shard %s", object.getClass(), shardId));
- shardIdsToShards.get(shardId).persist(entityName, object);
+ shardIdsToShards.get(shardId).establishSession().persist(entityName, object);
}
private interface DeleteOperation {
@@ -931,7 +942,7 @@
new DeleteOperation() {
public void delete(Shard shard, Object object) {
- shard.delete(object);
+ shard.establishSession().delete(object);
}
};
@@ -943,7 +954,7 @@
throws HibernateException {
DeleteOperation op = new DeleteOperation() {
public void delete(Shard shard, Object object) {
- shard.delete(entityName, object);
+ shard.establishSession().delete(entityName, object);
}
};
applyDeleteOperation(op, object);
@@ -952,7 +963,7 @@
public void lock(final Object object, final LockMode lockMode) throws HibernateException {
ShardOperation<Void> op = new ShardOperation<Void>() {
public Void execute(Shard s) {
- s.lock(object, lockMode);
+ s.establishSession().lock(object, lockMode);
return null;
}
public String getOperationName() {
@@ -966,7 +977,7 @@
throws HibernateException {
ShardOperation<Void> op = new ShardOperation<Void>() {
public Void execute(Shard s) {
- s.lock(entityName, object, lockMode);
+ s.establishSession().lock(entityName, object, lockMode);
return null;
}
public String getOperationName() {
@@ -1005,7 +1016,7 @@
public void refresh(final Object object) throws HibernateException {
RefreshOperation op = new RefreshOperation() {
public void refresh(Shard shard, Object object) {
- shard.refresh(object);
+ shard.establishSession().refresh(object);
}
};
applyRefreshOperation(op, object);
@@ -1015,7 +1026,7 @@
throws HibernateException {
RefreshOperation op = new RefreshOperation() {
public void refresh(Shard shard, Object object) {
- shard.refresh(object, lockMode);
+ shard.establishSession().refresh(object, lockMode);
}
};
applyRefreshOperation(op, object);
@@ -1024,7 +1035,7 @@
public LockMode getCurrentLockMode(final Object object) throws HibernateException {
ShardOperation<LockMode> invoker = new ShardOperation<LockMode>() {
public LockMode execute(Shard s) {
- return s.getCurrentLockMode(object);
+ return s.establishSession().getCurrentLockMode(object);
}
public String getOperationName() {
return "getCurrentLockmode(Object object)";
@@ -1121,7 +1132,7 @@
public String getEntityName(final Object object) throws HibernateException {
ShardOperation<String> invoker = new ShardOperation<String>() {
public String execute(Shard s) {
- return s.getEntityName(object);
+ return s.establishSession().getEntityName(object);
}
public String getOperationName() {
return "getEntityName(Object object)";
@@ -1399,11 +1410,11 @@
private static final SaveOrUpdateOperation SAVE_OR_UPDATE_SIMPLE = new SaveOrUpdateOperation() {
public void saveOrUpdate(Shard shard, Object object) {
- shard.saveOrUpdate(object);
+ shard.establishSession().saveOrUpdate(object);
}
public void merge(Shard shard, Object object) {
- shard.merge(object);
+ shard.establishSession().merge(object);
}
};
Modified: trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java 2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java 2007-06-14 03:27:42 UTC (rev 11688)
@@ -19,7 +19,6 @@
package org.hibernate.shards;
import org.hibernate.Criteria;
-import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.classic.Session;
import org.hibernate.engine.SessionFactoryImplementor;
@@ -31,7 +30,6 @@
import org.hibernate.shards.query.ShardedQuery;
import org.hibernate.shards.session.OpenSessionEvent;
-import java.io.Serializable;
import java.util.List;
import java.util.Set;
@@ -69,51 +67,6 @@
throw new UnsupportedOperationException();
}
- public Object get(Class<?> clazz, Serializable id) {
- throw new UnsupportedOperationException();
- }
-
- public Object get(Class<?> clazz, Serializable id, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
- public Object get(String entityName, Serializable id) {
- throw new UnsupportedOperationException();
- }
-
- public Object get(String entityName, Serializable id, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
-
- public Object load(Class<?> clazz, Serializable id) {
- throw new UnsupportedOperationException();
- }
-
- public Object load(Class<?> clazz, Serializable id, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
- public Object load(String entityName, Serializable id) {
- throw new UnsupportedOperationException();
- }
-
- public Object load(String entityName, Serializable id, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
- public void load(Object object, Serializable id) {
- throw new UnsupportedOperationException();
- }
-
- public void lock(Object object, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
- public void lock(String entityName, Object object, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
public List<Object> list(CriteriaId criteriaId) {
throw new UnsupportedOperationException();
}
@@ -122,58 +75,6 @@
throw new UnsupportedOperationException();
}
- public Serializable save(Object obj) {
- throw new UnsupportedOperationException();
- }
-
- public Serializable save(String entityName, Object obj) {
- throw new UnsupportedOperationException();
- }
-
- public void persist(String entityName, Object obj) {
- throw new UnsupportedOperationException();
- }
-
- public void refresh(Object object) {
- throw new UnsupportedOperationException();
- }
-
- public void refresh(Object object, LockMode lockMode) {
- throw new UnsupportedOperationException();
- }
-
- public void saveOrUpdate(Object obj) {
- throw new UnsupportedOperationException();
- }
-
- public void saveOrUpdate(String entityName, Object obj) {
- throw new UnsupportedOperationException();
- }
-
- public void update(Object object) {
- throw new UnsupportedOperationException();
- }
-
- public void update(String entityName, Object obj) {
- throw new UnsupportedOperationException();
- }
-
- public void delete(Object object) {
- throw new UnsupportedOperationException();
- }
-
- public void delete(String entityName, Object object) {
- throw new UnsupportedOperationException();
- }
-
- public LockMode getCurrentLockMode(Object object) {
- throw new UnsupportedOperationException();
- }
-
- public String getEntityName(Object object) {
- throw new UnsupportedOperationException();
- }
-
public Set<ShardId> getShardIds() {
throw new UnsupportedOperationException();
}
@@ -197,12 +98,4 @@
public Object uniqueResult(QueryId queryId) {
throw new UnsupportedOperationException();
}
-
- public void merge(Object object) {
- throw new UnsupportedOperationException();
- }
-
- public void merge(String entityName, Object object) {
- throw new UnsupportedOperationException();
- }
}
Modified: trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java 2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java 2007-06-14 03:27:42 UTC (rev 11688)
@@ -18,10 +18,7 @@
package org.hibernate.shards.integration.model;
-import org.hibernate.HibernateException;
-import org.hibernate.LockMode;
-import org.hibernate.SessionFactory;
-import org.hibernate.TransactionException;
+import org.hibernate.*;
import org.hibernate.classic.Session;
import org.hibernate.criterion.Projections;
import org.hibernate.proxy.HibernateProxy;
@@ -885,24 +882,60 @@
assertEquals("b1", loadedB.getName());
}
- public void testLoadNonexisting() {
- session.beginTransaction();
- Building b = building("b1");
- session.save(b);
- commitAndResetSession();
- b = reload(b);
- Serializable id = b.getBuildingId();
- session.delete(b);
- commitAndResetSession();
- try {
- Building loadedB = (Building)session.load(Building.class, id);
- loadedB.getName();
- fail();
- } catch (HibernateException he) {
- // good
- }
- }
+ public void testLoadNonexisting() {
+ session.beginTransaction();
+ Building b = building("b1");
+ session.save(b);
+ commitAndResetSession();
+ b = reload(b);
+ Serializable id = b.getBuildingId();
+ session.delete(b);
+ commitAndResetSession();
+ try {
+ Building loadedB = (Building)session.load(Building.class, id);
+ loadedB.getName();
+ fail();
+ } catch (HibernateException he) {
+ // good
+ }
+ }
+ public void testReplicate() {
+ session.beginTransaction();
+ Building idB = building("just need to get id");
+ session.save(idB);
+ commitAndResetSession();
+ Serializable id = idB.getBuildingId();
+ session.beginTransaction();
+ session.delete(idB);
+ commitAndResetSession();
+
+ Building b = building("b1");
+ b.setBuildingId(id);
+ session.beginTransaction();
+ session.replicate(b, ReplicationMode.IGNORE);
+ commitAndResetSession();
+ Building replicatedB = (Building)session.get(Building.class, id);
+ assertNotNull(replicatedB);
+ assertEquals("b1", replicatedB.getName());
+ }
+
+ public void testReplicatePersistedAndOverwrite() {
+ session.beginTransaction();
+ Building b1 = building("b1");
+ session.save(b1);
+ commitAndResetSession();
+ session.evict(b1);
+ Building b2 = building("b2");
+ b2.setBuildingId(b1.getBuildingId());
+ session.beginTransaction();
+ session.replicate(b2, ReplicationMode.OVERWRITE);
+ commitAndResetSession();
+ Building replicatedB2 = (Building)session.get(Building.class, b1.getBuildingId());
+ assertNotNull(replicatedB2);
+ assertEquals("b2", replicatedB2.getName());
+ }
+
public void testPersist() {
session.beginTransaction();
Building b = building("b1");
More information about the hibernate-commits
mailing list