Groovy Eval функция для оценки некоторой части SQL-запроса - PullRequest
0 голосов
/ 29 августа 2018

Мне нужно использовать groovy Eval () в sqlquery и оценить его во время выполнения. Я использую как

query =groovy.util.Eval.x(sqlQuery,sqlQuery); and 
sqlQuery =select Distinct <col1> from Tablename where criteira1=<cond> AND Clas1.getDateonDBType(fieldname) 

Мне нужно оценить Clas1.getDateonDBType (fieldname), который является java-методом во время выполнения, поскольку это зависит от БД, к которой я подключен. Функция Eval может извлечь sqlQuery, но выдает исключение, например

Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 1: unexpected token: DISTINCT @ line 1, column 8.

Я новичок в Groovy. Пожалуйста, помогите мне найти, что не так

1 Ответ

0 голосов
/ 31 августа 2018

если честно, я думаю, вы на неправильном пути

Groovy eval может оценивать скрипты Groovy, а не напрямую SQL. SQL оценивается вашей базой данных. Groovy-Script может обернуть оператор SQL, установить соединение с БД, которая затем выполняет SQL и возвращает результат.

Как я понимаю, вы хотите использовать Groovy, потому что вам нужно оценить getDateonDBType(). Разве вы не можете сделать что-то вроде этого:

String dateonDBType = Clas1.getDateonDBType(fieldname)
sqlQuery = "select Distinct <col1> from Tablename where criteira1=<cond> AND "+dateonDBType

Это создаст правильный sqlQuery прямо в Java, и вы сможете подключиться к БД и выполнить SQL без необходимости оценивать код Groovy.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...