powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring и Хранимые процедуры
3 сообщений из 3, страница 1 из 1
Spring и Хранимые процедуры
    #38387475
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! вопрос про Spring и Вызов Хранимых процедур.

Есть Бин в котором есть методы аннотированные как @Transactional ,

вопрос - если в методе идет вызов Хранимой процедуры - нужно ли его аннотировать?
Ведь Исполнение процедуры - в базе уже идет в своей транзакции !?


Нужно ли в методе callReportProcedure вызывать
Код: java
1.
2.
3.
session.beginTransaction();
... // call
session.getTransaction().commit();



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
@Service
public class ServiceImpl implements Service{


    @Autowired
    private SessionFactory sessionFactory;
    private HibernateTemplate ht;

    @PostConstruct
    public void init() {
        ht = new HibernateTemplate(sessionFactory);
        ht.setFlushMode(HibernateAccessor.FLUSH_AUTO);
    }

    @Transactional
    public CancelResult cancel(TCancel tCancel) {
        ...
   }

  @Override
    public ReportResult callReportProcedure(Date from, Date till){

           session = sessionFactory.openSession();
           java.sql.Connection con = session.connection();

           CallableStatement statement = null;

           statement = con.prepareCall("{CALL ONLINE_REPORT(?, ?)}");
           statement.setTimestamp(1, new Timestamp(from.getTime()));
           statement.setTimestamp(2, new Timestamp(till.getTime()));

           statement.execute();
          ResultSet rs = statement.getResultSet();
          ...
          statement.close();
          session.flush();
          session.close();

}




И второй вопрос :


Если есть метод в котором идет вызов-композиция методов из разных сервисов аннотированых как @Transactional

Нужно ли его так же аннотировать?
...
Рейтинг: 0 / 0
Spring и Хранимые процедуры
    #38387489
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1вопрос - если в методе идет вызов Хранимой процедуры - нужно ли его аннотировать?

Желательно. Даже если в хранимке только чтение происходит. А если запись, так тем более.

Atum1Ведь Исполнение процедуры - в базе уже идет в своей транзакции !?
Сюрприз! Все запросы к транзакционным RDBMS идут в своих транзакциях.

Atum1Нужно ли в методе callReportProcedure вызывать
Код: java
1.
2.
3.
session.beginTransaction();
... // call
session.getTransaction().commit();



Ну, если вам нужно ручное управление транзакцией. И нет никакой возможности использовать декларативное...




Atum1Если есть метод в котором идет вызов-композиция методов из разных сервисов аннотированых как @Transactional
Нужно ли его так же аннотировать?
Скорее да, чем нет. Ведь один метод это почти всегда одна логическая транзакция. Поэтому вполне разумно всю работу с базой осуществлять в одной тразакции БД. До тех пор пока постановка задачи не требует обратного.
...
Рейтинг: 0 / 0
Spring и Хранимые процедуры
    #38387586
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Спасибо большое !
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring и Хранимые процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]