Это моя проблема, я должен использовать большой SP, и нет времени переписывать в java. Итак, я использую критерии Hibernate, и я не знаю, могу ли я назвать это. Спасибо всем.Могу ли я вызвать хранимую процедуру с критериями спящего режима?
ответ
См. Using stored procedures for querying в справочной документации.
Соответствующие запросы вызываются так.
List employment = sess.getNamedQuery("BigSP")
.list();
Отображаемый запрос может возвращать объекты.
<sql-query name="BigSP" callable="true">
<return alias="emp" class="Employment">
<return-property name="employee" column="EMPLOYEE"/>
<return-property name="employer" column="EMPLOYER"/>
<return-property name="startDate" column="STARTDATE"/>
<return-property name="endDate" column="ENDDATE"/>
<return-property name="regionCode" column="REGIONCODE"/>
<return-property name="id" column="EID"/>
<return-property name="salary">
<return-column name="VALUE"/>
<return-column name="CURRENCY"/>
</return-property>
</return>
{ call BigSP }
</sql-query>
This document описывает, как отобразить результат хранимой процедуры, выполняемой в качестве родного запроса.
Вы не можете сделать это с помощью API критериев, но это не имеет значения.
Нет, вам нужно использовать собственный запрос. Если вы используете аннотации, см. 2.3.2. Mapping native queries.
Ниже приведен пример:
@Entity
@NamedNativeQuery(
name="baz",
query="call fooProc(:bar, :i)",
callable=true,
readOnly=true,
resultClass=Foo.class
)
public class Foo {
private Date when;
//...
}
И называть его:
@Stateless
public class FooBean implements FooLocal {
@PersistenceContext EntityManager em;
public Foo getAFoo(string bar, int i) {
Foo result = (Foo)em.createNamedQuery("baz").setParameter("bar", bar).setParameter("i", i).getSingleResult();
return result;
}
}
Спасибо Thivent, но мы не используем аннотации :( – Gaston
@Gaston Затем обратитесь к ответу Лаклана. –
- 1. Невозможно вызвать Хранимую процедуру из спящего режима
- 2. Можно ли динамически добавлять хранимую процедуру из спящего режима?
- 3. Наследование спящего режима с критериями спящего режима (TABLE_PER_CLASS)
- 4. Как вызвать хранимую процедуру спящим?
- 5. Можно ли вызвать хранимую процедуру с спящим режимом?
- 6. Могу ли я вызвать хранимую процедуру из EntityDataSource?
- 7. Вызвать хранимую процедуру в другую хранимую процедуру
- 8. Функция COALESCE с критериями спящего режима
- 9. Как получить запрос с критериями спящего режима?
- 10. Как вызвать хранимую процедуру из спящего режима с параметрами IN и OUT
- 11. Вызвать хранимую процедуру сам sql
- 12. Как я могу вызвать хранимую процедуру sp_executesql в сущности?
- 13. Как я могу вызвать хранимую процедуру из Crystal Reports?
- 14. Как я могу вызвать хранимую процедуру в Javascript/Ajax?
- 15. NHibernate - как вызвать хранимую процедуру?
- 16. Как вызвать хранимую процедуру Oracle
- 17. Чтобы вызвать хранимую процедуру автоматически
- 18. Не правильно вызвать хранимую процедуру?
- 19. Как динамически вызвать хранимую процедуру?
- 20. JPA: Как вызвать хранимую процедуру
- 21. Могу ли я вызвать процедуру синхронно?
- 22. Могу ли я динамически вызывать хранимую процедуру из представления?
- 23. Как вызвать хранимую процедуру с меньшими параметрами?
- 24. Могу ли я создать новую хранимую процедуру с ошибкой внутри?
- 25. Как вызвать хранимую процедуру с использованием sqlalchemy
- 26. Могу ли я указать отношение спящего режима с фильтром?
- 27. Невозможно вызвать хранимую процедуру с триггера
- 28. Как вызвать хранимую процедуру с помощью nhibernate?
- 29. как вызвать хранимую процедуру с необязательными аргументами
- 30. Как вызвать хранимую процедуру с нетрадиционными параметрами?
Hibernate также позволяет выполнять базы данных вызовов непосредственно. Вы также можете сделать это именно так. –
Спасибо за ваш ответ, но как я могу это сделать? – Gaston