ibatis-user-cs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Hill <hil...@insightbb.com>
Subject Transaction question
Date Fri, 11 May 2007 15:48:27 GMT
Hello,

I'm new to iBatis .NET and had a quick question about how the 
session/transaction stuff should work.  The documentation examples shows 
something like this:

try
{
    sqlMap.BeginTransaction();
    Item item = (Item) sqlMap.QueryForObject("getItem", itemId);
    item.Description = newDescription;
    sqlMap.Update("updateItem", item);
    sqlMap.CommitTransaction();
}
catch {
    sqlMap.RollBackTransaction();
}

Which works fine in this simple case where all of the transaction logic 
exists in the data layer.  In my case, I have several different Data 
Access Objects I've created (roughly one for each of my entity objects), 
and from my business logic layer I want to call several methods across 
the different DAOs and have them all participate in a transaction.  Can 
someone guide me in the right direction?

All the DAO classes extend from a common base DAO which can easily 
begin/rollback/commit a transaction by getting an instance of the 
ISqlMapper and calling the appropriate methods.  However since the 
mapper is a singleton, and a transaction has been started, wouldn't this 
then cause other DAO methods which may be called to inadvertently 
participate in the transaction since each DAO would be using the same 
ISqlMapper instance?

Thanks,
Mike



Mime
View raw message