Czy można odwzorować wynik natywnego zapytania SQL na zbiór instancji klasy Grails?Wynik odwzorowania natywnego zapytania SQL do klasy domeny Grails
Odpowiedz
import com.acme.domain.*
def sessionFactory
sessionFactory = ctx.sessionFactory // this only necessary if your are working with the Grails console/shell
def session = sessionFactory.currentSession
def query = session.createSQLQuery("select f.* from Foo where f.id = :filter)) order by f.name");
query.addEntity(com.acme.domain.Foo.class); // this defines the result type of the query
query.setInteger("filter", 88);
query.list()*.name;
Można go samodzielnie odwzorować bez większych problemów. Alternatywnie, jeśli używasz HQL, możesz użyć select new map()
, a następnie podjąć query.list().collect { new MyDomainObject(it) }
, aby ręcznie połączyć parametry.
Prawda, ale przypuszczam, że byłby znacznie wolniejszy od mocno zoptymalizowanego kodu Hibernate. –
Alternatywnie używając Groovy SQL w aplikacji Grails
import groovy.sql.Sql
class TestQService{
def dataSource //Auto Injected
def getBanksForId(int bankid){
def sql = Sql.newInstance(dataSource)
def rows = sql.rows(""" Select BnkCode , BnkName from Bank where BnkId = ?""" , [bankid])
rows.collect{
new Bank(it)
}
}
class Bank{
String BnkCode
String BnkName
}
}
Sql.newInstance (dataSource) zawodzi, ponieważ nie ma metody, która pobiera obiekt datasourc. – benstpierre
- 1. Korzystanie z natywnego zapytania SQL bez klasy encji
- 2. Wymóg typowego odwzorowania domeny
- 3. Grails klasy domeny: UNIQUE dla wielu kolumn
- 4. Wiele relacje hasMany do tej samej klasy domeny w Grails
- 5. Jak zmienić odwzorowania kolumn w Grails
- 6. Zliczanie i wynik zapytania SQL w Go
- 7. Grails pobiera obiekty domeny podrzędnej
- 8. Jak mogę odczytać wynik zapytania sql do właściwości ant?
- 9. Jak wstawić wynik zapytania SQL do tabeli temp?
- 10. Jak modyfikujesz klasę domeny w Grails?
- 11. Ograniczenia klasy domeny Grails dla relacji między polami
- 12. W Grails, jak zadeklarować nazwę schematu serwera SQL dla klasy domeny?
- 13. buforowania obiektów domeny w Grails
- 14. Grails 3 @Rozkład notacji, używając obiektu domeny
- 15. W języku Grails, w jaki sposób uzyskać dostęp do sesji hibernacji wewnątrz metody statycznej klasy domeny?
- 16. Pole czasowe W domenie domeny grails
- 17. Jak ponownie użyć klas domeny aplikacji Grails?
- 18. Wynik dodania int32 do 64-bitowego natywnego int?
- 19. wynik zapytania mysql do php tablicy
- 20. Eksportuj wynik zapytania jako CSV do PHP
- 21. Jak zachować określony wiersz jako pierwszy wynik zapytania (T-SQL)?
- 22. Wynik zapytania SQL w łańcuchu znaków (lub zmiennej)
- 23. Grails-ElasticSearch Plugin: Warunkowe indeksowanie instancji domeny
- 24. Grails: Dynamicznie wstrzyknąć usługę w klasie domeny
- 25. Jak wysłać wynik zapytania w formacie CSV?
- 26. Ustaw wynik zmiennej, z zapytania
- 27. Użycie zapytania SQL do wysłania zapytania do kolumny danych XML
- 28. Jak uzyskać typ (klasę) właściwości obiektu domeny Grails?
- 29. Doctrine 2: wynik zapytania jako asocjacyjnej
- 30. SQL - przyspieszenie zapytania
ten był bardzo pomocny! – Topera
Dzięki. Pomogło mi to również ... –
W tej odpowiedzi brakowało mi "def sessionFactory", które musi pojawić się w kontrolce (jeśli robisz to w kontrolerze, tak jak ja). Pole jest wstrzykiwane, a następnie można wykonać sessionFactory.currentSession. – Jason