我正在尝试异步加载数据库中的一些信息。
我有一个A类,它与ClassB有一对一的关系。
我所做的是,在数据库中获取A类数,然后加载有限数量的A类
所以Hibernate运行3个查询:首先得到计数,第二个得到A类,第三个加载B类,映射到A类。
我使用这样的Timer运行asynch:
Timer timer = new Timer(true);
// add the task to the timer
timer.schedule(task, 1);
task.run调用加载方法
如果我没有使用计时器,测试工作正常。如果我正在使用它,Hibernate会为第三个查询抛出TableNotFound异常
任何想法,问题是什么?
答案 0 :(得分:1)
您的计时器是否使用相同的SessionFactory?您的SessionFactory可能未配置您的hibernate.cfg.xml信息。
答案 1 :(得分:0)
感谢您的回复。
检查堆栈跟踪后,我发现hibernate映射遇到了某个类的问题,该类的名称为“order”的@IndexColumn是SQL上的一个关键字,它阻止了表的创建。
我不知道为什么它可以用掉定时器,并且错误发现了w / timer。
重命名IndexColumn后,测试工作正常