To jest mój problem, muszę używać dużego SP, i nie ma czasu na przepisywanie w Javie. Używam kryteriów Hibernate i nie wiem, czy mogę to nazwać. Dziękuje za wszystko.Czy mogę wywołać procedurę przechowywaną z kryteriami hibernacji?
Odpowiedz
Patrz dokumentacja referencyjna: Using stored procedures for querying.
Odwzorowane kwerendy są wywoływane w ten sposób.
List employment = sess.getNamedQuery("BigSP")
.list();
Zmapowane zapytanie może zwracać encje.
<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 opisuje jak mapować wynik procedury przechowywanej, wykonane jako native zapytania.
Nie można tego zrobić za pomocą API Criteria, ale nie powinno to mieć znaczenia.
Nie, musisz użyć zapytania natywnego. Jeśli używasz adnotacji, zobacz 2.3.2. Mapping native queries.
Poniżej przykład:
@Entity
@NamedNativeQuery(
name="baz",
query="call fooProc(:bar, :i)",
callable=true,
readOnly=true,
resultClass=Foo.class
)
public class Foo {
private Date when;
//...
}
I to nazwać:
@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;
}
}
Dzięki Thivent, ale nie używamy denerwacji :( – Gaston
@Gaston Następnie odwołaj się do odpowiedzi Lachlana. –
- 1. Jak wywołać procedurę przechowywaną MySQL z Rails?
- 2. Jak mogę edytować procedurę przechowywaną?
- 3. Jak wywołać procedurę przechowywaną w JDBC
- 4. Jak wywołać procedurę przechowywaną na Laravel?
- 5. Jak wywołać procedurę przechowywaną przy użyciu ADO.NET
- 6. jak wywołać procedurę przechowywaną, gdzie klauzula SQL
- 7. Jak wywołać procedurę przechowywaną z NHibernate, która nie daje wyniku?
- 8. Jak wywołać procedurę przechowywaną z EntityFramework 6 z parametrem "hierarchyid"
- 9. Jak wywołać procedurę przechowywaną mysql z argumentami z wiersza poleceń?
- 10. Jak wywołać procedurę przechowywaną MySQL z poziomu kodu PHP?
- 11. Jak wywołać procedurę przechowywaną programu SQL Server z programu PowerShell?
- 12. Jak utworzyć procedurę przechowywaną MySQL z PHP?
- 13. Wykonaj procedurę przechowywaną z pliku wsadowego
- 14. Liczba wierszy hibernacji z pewnymi kryteriami:
- 15. Jak debugować procedurę przechowywaną w toad?
- 16. Jak dodać procedurę Przetrzymuj/zatrzymaj w SQL przechowywaną procedurę
- 17. Jak zaplanować procedurę przechowywaną w MySQL
- 18. Jak edytować procedurę przechowywaną w MySQL?
- 19. Jak napisać procedurę przechowywaną w phpMyAdmin?
- 20. Jak umieścić procedurę przechowywaną w wybranej lokalizacji?
- 21. Jak usunąć procedurę przechowywaną w postgresql?
- 22. Jak wykonać procedurę przechowywaną wewnątrz kwerendy wyboru
- 23. Jak utworzyć procedurę przechowywaną w MS Access?
- 24. Jak wywołać procedurę przechowywaną za pomocą kursora ref w Oracle z wiewiórki
- 25. Jak wywołać funkcję Oracle lub procedurę przechowywaną za pomocą struktury sprężystości?
- 26. Wykonaj procedurę przechowywaną z wartościami tabeli jako parametr
- 27. Jak wywołać procedurę składowaną przez hibernację?
- 28. Jak uruchomić procedurę przechowywaną w serwerze sql co godzinę?
- 29. Wykonaj procedurę przechowywaną w innej procedurze przechowywanej na serwerze SQL
- 30. Hibernate: jak wywołać funkcję przechowywaną zwracającą varchar?
Hibernate pozwala także na wykonywanie połączeń bazy danych bezpośrednio. Możesz też zrobić to w ten sposób. –
Dzięki fot odpowiedź, ale jak mogę to zrobić? – Gaston