Jdbi syntax

Odpowiedz Nowy wątek
2018-05-25 12:25

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

Witam. Mam problem z zapytaniem i nie mam pomysłu jak je rozwiązać. Korzystam z JDBI. Treść mojego zapytania:

@RegisterMapper(SimpleOperatWithStateMapper.class)
  @SqlQuery("SELECT DISTINCT o.ID from <database>.OPERAT o join (SELECT t.ID_OPERAT FROM <database>.OPERAT_SZCZEGOLY t where t.CZY_USUNIETY =0 and (t.CZY_USUNAC <>'D' or t.CZY_USUNAC is  null) " +
          "and t.TYP IN (<typySzczegolow>) and (t.DZIALKI <>' ' and t.DZIALKI<>'null') group by t.ID_OPERAT) t on o.ID = t.ID_OPERAT " +
          "where (o.LISTA_DZIALEK IS NULL OR o.LISTA_DZIALEK=' ' OR o.LISTA_DZIALEK='null') " +
          "and exists(SELECT 1 FROM <database>.OPERAT_SZCZEGOLY os where os.ID_OPERAT = o.ID and os.CZY_USUNIETY = 0 and " +
          "(os.CZY_USUNAC <>'D' or os.CZY_USUNAC is  null) and os.TYP IN (<typySzczegolow>) and (os.DZIALKI is null or os.DZIALKI =' ' or os.DZIALKI='null'))")
  List<Long> pobierzListeOperatowDoPrzypisaniaDzialekZeSzczegoluDoSzczegolow(@Define("database") String schema, @BindIn("typySzczegolow") List<String> typySzczegolow);

a zwrócony błąd to:

org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 [statement:"SELECT DISTINCT o.ID from <database>.OPERAT o join (SELECT t.ID_OPERAT FROM <database>.OPERAT_SZCZEGOLY t where t.CZY_USUNIETY =0 and (t.CZY_USUNAC <>'D' or t.CZY_USUNAC is  null) and t.TYP IN (<typySzczegolow>) and (t.DZIALKI <>' ' and t.DZIALKI<>'null') group by t.ID_OPERAT) t on o.ID = t.ID_OPERAT where (o.LISTA_DZIALEK IS NULL OR o.LISTA_DZIALEK=' ' OR o.LISTA_DZIALEK='null') and exists(SELECT 1 FROM <database>.OPERAT_SZCZEGOLY os where os.ID_OPERAT = o.ID and os.CZY_USUNIETY = 0 and (os.CZY_USUNAC <>'D' or os.CZY_USUNAC is  null) and os.TYP IN (<typySzczegolow>) and (os.DZIALKI is null or os.DZIALKI =' ' or os.DZIALKI='null'))", located:"SELECT DISTINCT o.ID from digitalizacja_oborniki.OPERAT o join (SELECT t.ID_OPERAT FROM digitalizacja_oborniki.OPERAT_SZCZEGOLY t where t.CZY_USUNIETY =0 and (t.CZY_USUNAC ", rewritten:"SELECT DISTINCT o.ID from digitalizacja_oborniki.OPERAT o join (SELECT t.ID_OPERAT FROM digitalizacja_oborniki.OPERAT_SZCZEGOLY t where t.CZY_USUNIETY =0 and (t.CZY_USUNAC ", arguments:{ positional:{}, named:{__typySzczegolow_0:'Szkice'}, finder:[]}]

Jak to rozwiązać?

edytowany 1x, ostatnio: hydrant23, 2018-05-25 12:26

Pozostało 580 znaków

2018-05-25 12:32

Rejestracja: 4 lata temu

Ostatnio: 3 minuty temu

Lokalizacja: U krasnoludów - pod górą

0

@UseStringTemplate3StatementLocator Ci zabrakło.

Pie...na magia.


jeden i pół terabajta powinno wystarczyć każdemu

Pozostało 580 znaków

2018-05-25 13:45

Rejestracja: 5 lat temu

Ostatnio: 2 minuty temu

0
o.LISTA_DZIALEK IS NULL OR o.LISTA_DZIALEK=' ' OR o.LISTA_DZIALEK='null'

Cóż za delicja na koniec tygodnia.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0