Я экспериментирую с необработанными результатами с помощью HSQLDB 2.3.3.
Моя схема таблицы является:SQL select statement в HSQLDB с предложением where
CREATE TABLE job_schedule (
job_id BIGINT NOT NULL PRIMARY KEY,
job_name VARCHAR(36) NOT NULL,
job_group VARCHAR(36) NOT NULL,
job_start BIGINT NOT NULL,
job_data VARCHAR(255) NULL,
job_body CLOB NULL)
CREATE UNIQUE INDEX idx_job_schedule_name ON job_schedule
(job_name, job_group)
Я использую HSQL менеджер баз данных, чтобы выбрать все строки из таблицы:
SELECT * FROM job_schedule
JOB_ID JOB_NAME JOB_GROUP JOB_START JOB_DATA JOB_BODY
------ ------------------------------------ ------------------------------------ ------------- ------------------------------------------------------------------------------------------------------------ --------
79 cb9b5abe-f6b6-4670-a702-5bec4f6b9217 edab5d78-3533-11e5-a151-feff819cdc9f 1442848923391 {"duration":69,"start":0,"channel":"ba981e18-e2d8-42ce-a7af-147ff40f075f","content":"360449L0E0ZqbNnH.mp4"}
80 a0e49194-c01c-4c77-ac4c-95f60bd3528b edab5d78-3533-11e5-a151-feff819cdc9f 1442848866000 {"duration":57,"start":0,"channel":"ba981e18-e2d8-42ce-a7af-147ff40f075f","content":"294913LWi2e1RuY9e.mp4"}
программа My Java использует следующий класс (который расширяет Spring Framework 4.2.0 класс):
@Transactional(propagation = Propagation.REQUIRED)
public class DefaultJobManager extends JdbcDaoSupport {
private DefaultJobManager.QueryIdSql myQueryIdSql;
@Override
protected void initTemplateConfig() {
JdbcTemplate db = getJdbcTemplate();
myQueryIdSql = new DefaultJobManager.QueryIdSql(db);
}
@Transactional(readOnly = true)
public List<Long> listJobs(long startMin, long startMax) {
return myQueryIdSql.execute(startMin, startMax);
}
private static final class QueryIdSql extends MappingSqlQuery<Long> {
QueryIdSql(JdbcTemplate db) {
setJdbcTemplate(db);
setSql("select job_id from job_schedule " +
"where job_start between ? and ?");
setResultSetType(ResultSet.TYPE_FORWARD_ONLY);
setUpdatableResults(false);
declareParameter(new SqlParameter(Types.BIGINT));
declareParameter(new SqlParameter(Types.BIGINT));
compile();
}
protected Long mapRow(ResultSet rs, int rowNum) throws SQLException {
return rs.getLong(1);
}
}
метод listJobs(1442848866000L, 1442848923391L)
возвращает List
только один элемент.
HSQLDB генерирует файл db.sql.log
и в этом файле я могу читать:
select job_id from job_schedule where job_start between ? and ? (1442848866000,1442848923391)
Извините, я попытался изолировать свою проблему в HSQLDB, но я сделал глупую ошибку. Я только что закончил сообщение с программой Java, где моя проблема началась. –