Używam Hibernuj 4 i chciałbym po prostu wyświetlić wszystkie wiersze tabeli. Wszystkie znalezione przeze mnie rozwiązania sugerują użycie czegoś podobnego do "z tablename", ale chciałabym uniknąć stawiania klatek na sztywnych tablicach nazw.Trwa pobieranie wszystkich wierszy tabeli bez HQL?
Odpowiedz
Można użyć
session.createCriteria(MyEntity.class).list();
na przykład.
HQL nie używa nazw tabel. Używa nazw jednostek. Nazwy encji to (domyślnie) nazwy klas. Więc można użyć
String hql = "select a from " + TheEntity.class.getSimpleName() + " a";
Ale chciałbym faworyzować czytelność nad bezpieczeństwem typu tu i używać
String hql = "select a from TheEntity a";
Trzeba zautomatyzowanych testów dla zapytań w każdym razie.
Tak, zapytania są testowane, ale nadal swoją drugie rozwiązanie oznaczałoby, że zapytanie nie byłyby brane pod uwagę przez refaktoringu . –
Tak, ale zostanie przechwycony przez test niesprawności. –
Zgadzam się, że ostatecznie ważne jest, aby uzyskać prawidłowe wyniki, ale ponieważ projekt jest obecnie na wczesnym etapie, każdego tygodnia odbywa się coś w rodzaju refaktoryzacji. Tak więc prawidłowe wspieranie tego jest obecnie bardzo ważne. –
// Hibernate Klasa
public class CommonDAO<T> {
Session session = null;
Transaction transaction = null;
private Class<T> clazz;
public CommonDAO(){ //constructor
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
Type genericSuperclass = this.getClass().getGenericSuperclass();
if (genericSuperclass instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) genericSuperclass;
Type type = pt.getActualTypeArguments()[0];
clazz = (Class<T>) type;
}
}
public T listById(Object id) {
T object = null;
try {
object = (T) session.get(clazz, (Serializable) id);
} catch (Exception e) {
e.printStackTrace();
}
return object;
}
}
// Użytkownik Klasa
public class UserDAO extends CommonDAO<UserMaster> { // Here UserMaster is pojo
public UserDAO() {
super();
}
public static void main(String ar[]) {
UserMaster user = new UserDAO().listById(1); // 1 is id
System.out.println(user.getUserName());
}
}
- 1. Aktualizacja tabeli trwa bardzo długo
- 2. Ukrywanie wierszy tabeli bez zmieniania ogólnej szerokości
- 3. Trwa pobieranie GroupResult z taskset_id w Seler?
- 4. Trwa pobieranie znacznika czasu z wiersza hbase
- 5. Pobieranie ostatnich wstawionych identyfikatorów dla wielu wierszy
- 6. Zwalnianie: pobieranie wszystkich wiadomości
- 7. Aktualizacja kolumny dla wszystkich wierszy
- 8. Usuwanie wszystkich wierszy z tabeli za pomocą JPA
- 9. Najbardziej skuteczny sposób na usunięcie wszystkich zduplikowanych wierszy z tabeli?
- 10. Selenium Webdriver - Pobieranie danych tabeli
- 11. Otrzymywanie wszystkich utworzonych dzisiaj wierszy
- 12. Użycie hibernacji/hql do obcięcia tabeli?
- 13. Excel: pobieranie zaznaczonych wierszy powrotem
- 14. Wydanie wierszy tabeli kątowej
- 15. Pobieranie wszystkich elementów za pomocą DynamoDBMapper
- 16. Przełącz zmienną liczbę wierszy tabeli
- 17. Data Porównaj w HQL bez timestamp
- 18. Pytest: Pobieranie adresów wszystkich testów
- 19. Trwa pobieranie obiektu JSON Object Literal z HttpServletRequest
- 20. Trwa pobieranie linków międzyjęzykowych z wyeksportowanego artykułu z Wikipedii?
- 21. Trwa pobieranie właściwości nazwy widoku w systemie Android?
- 22. Trwa pobieranie identyfikatora sesji usług terminalowych w .NET?
- 23. Usuwanie wierszy tabeli w javascript
- 24. Usuwanie zduplikowanych wierszy z tabeli
- 25. Liczba wierszy SQL w tabeli
- 26. Rolling wierszy w tabeli SQL
- 27. Pobieranie zmian z tabeli za pomocą rzeki JDBC ElasticSearch
- 28. Wstawianie danych w jednej tabeli przy użyciu HQL w Hibernate
- 29. Pobieranie zależności MacPorts bez instalowania
- 30. NHibernate Pobieranie obiektów bez proxy
Jak mogę to posortować? –
session.createCriteria (MyEntity.class) .addOrder (Order.asc ("age") .list(); – slonik
Czy istnieje sposób na zabezpieczenie tego typu? – Hassan