Wpis z mikrobloga

Jest 2020 rok, a wyciąganie danych z bazy w dalszym ciągu wygląda tak:
- piszę jakieś skomplikowane zapytanie SQL, co zajmuje mi x czasu, robi to co powinno, ale jest bez ORM-a i ma związane z tym problemy, przede wszystkim każdy wiersz jest tablicą ciągów tekstowych, co nie jest szczególnie pasującym typem
- przez co najmniej 3x czasu kombinuję, jaki kod napisać, żeby ORM wygenerował to samo albo równoważne zapytanie, które wcześniej napisałem w czystym SQL-u, często przy tym zastanawiając się, czy w ogóle spowodowanie, żeby stworzył taki SQL jest możliwe
- dopiero po zrobieniu tego mam wynik zapytania z prawidłowymi typami

Według was dlaczego nikt tego jeszcze nie rozwiązał? A może istnieją jakieś rozwiązania, tylko mało popularne?

#programowanie
  • 9
@Kaczus2B: Na przykład chciałbym wykonać zapytanie:
"SELECT ip, port, country
FROM servers
WHERE coś bardzo skomplikowanego, z podzapytaniami
ORDER BY coś bardzo skomplikowanego, z podzapytaniami, innego niż wcześniej"
i dostać obiekty klasy Server z wypełnionymi polami ip, port, country, ale w taki sposób, żeby w kodzie był SQL, a nie wywołania jakiejś "ułatwiającej" nakładki generującej SQL, gdzie doprowadzenie do tego, żeby coś bardzo skomplikowanego w wygenerowanym zapytaniu było tym, czym chcę,
@Kaczus2B: A który z istniejących popularnych ORM-ów pozwoli mi na samodzielne pisanie zapytań SQL (nie jakiś-tam-ograniczony-QL), w taki sposób żeby działało automatyczne, niewymagające pisania długiego kodu mapowanie wyniku na obiekty, zwłaszcza że tam może być JOIN i relacje?
@jacekprim: ja wychodze z zalozenia, ze jesli jest cos co lepiej wykonac bez orma, wykonujesz bez orma. Trzymanie sie jakiejs jednej ideologii uwazam za nierozsadne. U nas chlopakom, co uparli sie na jakiegos ORM-a, jak cos dziala slabo piszemy po prostu roznego rodzaju funkcje w sql-u.
@jacekprim: Nie bardzo określiłeś co chcesz osiągnąć poza tym, że chcesz widzieć zapytanie SQL. Jeżeli uważasz, że w technologii, w której pracujesz nie da się tego zrobić w ORM to zrób z tego widok na bazie, a w aplikacji zmapuj na właściwe (lub nie, patrz DTO, projekcje) obiekty. Jeśli ma być w aplikacji, a kryteria mają być ustalane dynamicznie to w takiej Javie masz chociażby Criteria API (i pewnie odpowiedniki w