Возникла проблема с запросом ошибки: "База данных HSQL: неожиданный токен: END in Statement"
Я создал запрос активного объекта, как показано ниже:
ao.find(IP.class, Query.select().where("user=? AND start>=? AND end<=?",u,datefieldl,datefieldl))
но это дает мне ошибку ниже:
Библиотека активных объектов вызвала исключение SQL: База данных: - имя:HSQL Database Engine - версия:1.8.0 - дополнительная версия:8 - основная версия: 1 Драйвер: - имя:HSQL Database Engine Driver - версия:1.8.0 java.sql.SQLException: неожиданный токен: END в выражении [SELECT * FROM PUBLIC.AO_0371A8_IP WHERE user=? И начать>=? И конец<=?]
создать сущность, как показано ниже:
IP pi = ao.executeInTransaction(new TransactionCallback() // (1)
{
@Override
public IP doInTransaction()
{
logger.info("before ao.create");
IP pi = ao.create(enclass);
....
pi.save();
return pi;
}
});
Моя сущность выглядит так:
@Table("IP")
@Preload
public interface IP extends Entity {
@Accessor("issues")
String getIssues();
@Mutator("issues")
void setIssues(String issues);
@Accessor("planStartTime")
Date getPlanStartTime();
@Mutator("planStartTime")
void setPlanStartTime(Date planStartTime);
@Accessor("planEndTime")
Date getPlanEndTime();
@Mutator("planEndTime")
void setPlanEndTime(Date planEndTime);
@Accessor("user")
String getUser();
@Mutator("user")
void setUser(String user);
}
любая идея?
1 ответ
Неожиданный токен: END в заявлении
Посмотрите на ваши условия:
"user=? AND start>=? AND end<=?"
END
на самом деле ключевое слово SQL (после строки IF
а также BEGIN
). Измените это, например:
"user=? AND sessionStartTime>=? AND sessionFinishTime<=?"
Проблема здесь в том, что когда генерируется окончательный запрос SQL, он имеет неверный синтаксис. Вот почему вы получаете исключение.