我们的项目使用 Hibernate 3.0 进行数据库访问。我们使用二级缓存和查询缓存来缓存查询和实体。EhCache 用于缓存目的。
DAO 方法 getData() 在会话关闭之前使用 Hibernate.initialize() 获取数据并初始化所有关联。
主执行线程触发异步执行器任务为各个模块生成数据。这些任务依次调用上述方法来获取数据。在第一次 db 调用之后,查询、实体及其关联被缓存,以便可以从缓存而不是 DB 中获取它们以供后续调用。然后,在这些任务完成后,主线程会
访问相同的数据以进行额外的工作。
在 LOCAL 环境中一切正常,但代码在 DEV/INT 环境中失败。
在 dev 中,对上述 DAO 方法的调用在主线程中失败。关联之一的初始化失败。即使有数据,Hibernate.initialize() 方法调用也会返回 null。相同的调用适用于异步任务,但仅在主线程中失败。在日志中,我看不到任何与缓存命中/未命中相关的语句,但对于任务,我可以看到它们
可能的问题是什么?