Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > spring transactions


Автор: gelo86 15.10.2008, 23:01
Доброе время суток. Дапустим у меня есть обек типа Map<String, String>. В нем хранитса дапустим какието данные, которые хранятся тоже и в базе данных. Если мне например надо поменят какоето значение в map'е или добавит новое, то надо поменять и в базе данных. Taкая операция состоит из несколко шагов: поменят сам map и зделат два упдата/инсерта в базе данных. Код вигледел би примерно так:

Код

void someMethod(Map<String, String> params) {
    params.set("one", "one value");
    params.set("two", "two value");

   paramsDAO.insetParam("one", "one value");
   paramsDAO.insetParam("two", "two value");
}


Отривки из кода что я щейчас исползую:

Код

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${drv}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${user}"/>
        <property name="password" value="${pass}"/> 
    </bean>
    
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>


Код

public class ParamsDAOImpl extends JdbcDaoSupport ... 


Но если например несработает первый инсерт, то сам обект params уже будет изменен. Поетаму етот метод должен происходит както в транзакции. Я с транзакциями незнаком в спринге (конечно почитал немного), но возник вопрос, возможно ли такой метод проводит в транзакции. Смогут ли другие потоки визиват етот метод?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)