2009-10-26 3 views
0

Я пытаюсь загрузить некоторую информацию из базы данных асинхронно.Hibernate Exception

У меня есть класс A, который имеет отношение Один к одному с ClassB.

То, что я делаю, становится подсчет класса А в базе данных, то загрузить ограниченное число класса А

Так Hibernate работает 3 запросов: первый, чтобы подсчитать, второй, чтобы получить класс А, третий для загрузки класса B , отображается в классе А.

Я бегу это асинхронный с использованием таймера, как это:

Timer timer = new Timer(true); 
    // add the task to the timer 
    timer.schedule(task, 1); 

task.run вызывает метод загрузки

Если Я не использую таймер, тест работает нормально. Если я использую его, Hibernate выбрасывает исключение TableNotFound для третьего запроса

любая идея, в чем проблема?

+0

Hibernate не имеет 'TableNotFoundException'; Hadoop делает. Можете ли вы, по крайней мере, опубликовать трассировку стека? Отображение кода «загрузки», а также соответствующих сопоставлений тоже помогло бы. – ChssPly76

+0

да, это не исключение спящего режима, hibernate исключает исключение b/c ошибки SQL о таблице не найдена – Noura

ответ

0

Спасибо за ответы ур.

После проверки трассировки стека, я обнаружил, что отображение hibernate имело проблему с некоторым классом, класс имеет @IndexColumn с именем «order», которое является ключевым словом на SQL, что предотвращает создание таблицы.

Я не знаю, почему он работает с таймером таймера, и обнаружена ошибка с таймером.

После переименования IndexColumn, тест работает нормально

1

Ваш таймер использует тот же SessionFactory? Ваш SessionFactory не может быть настроен с вашей информацией hibernate.cfg.xml.

Смежные вопросы