используя хранимую процедуру в Hibernate 3 - PullRequest
1 голос
/ 01 июля 2010

Здравствуйте, я использую hibernate + spring с 5 месяцев, но никогда не использовал хранимую процедуру в hibernate, поэтому, пожалуйста, кто-нибудь может сказать мне, как вызвать хранимую процедуру из БД (MySQL) ....

Ответы [ 3 ]

1 голос
/ 01 июля 2010

Hibernate определяет вызовы хранимых процедур как именованный запрос.Документы объясняют , как установить это в конфигурации Hibernate.

Из Spring вы можете вызывать именованный запрос, используя различные HibernateTemplate.findByNamedQuery(...) методы.

0 голосов
/ 01 июля 2010

Поскольку вы уже используете Spring с Hibernate, я бы предложил использовать классы Spring.Вы можете расширить класс StoredProcedure, упомянутый выше, есть и другие альтернативы.Если у вас есть базовая хранимая процедура, я бы сказал, что самый простой способ вызвать ее - использовать класс Spring * SimpleJdbcCall Документация Spring довольно неплохо описывает этот класс фрагментами кода.

0 голосов
/ 01 июля 2010

Spring имеет класс StoredProcedure , который можно расширить для вызова хранимых процедур.

class MyStoredProcedure extends StoredProcedure {
     public MyStoredProcedure(DataSource ds) {
          this.setDataSource(ds);
          this.setSql("store_procedure_name");
          this.declareParameter(new SqlParameter("name", Types.VARCHAR);
          this.compile();
     }

     public void callProcedure() {
          Map<string, String> inParams = new HashMap<String, String>();
          inParams.put("name", "taher");
          try {
               execute(inParams);
          } catch (DataAccessException dae) {
          }
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...