您好,我是 Hibernate 的新手。
我用 Hibernate Tools 生成了一个数据库访问模块。生成器生成 DAOS 和 Hibernate Bean 的代码。
当我在一个简单的 Java 应用程序中测试这个模块时,一切正常,但是当我在一个 Spring Web 应用程序中测试它时,我得到了一个非常奇怪的错误。由于我的模块是一个独立的 jar,它应该访问数据库而不考虑在简单的 Java 应用程序或 Web 应用程序中执行的情况。我的网络应用程序的代码是:
@Controller
@RequestMapping("/")
public class Controller implements ApplicationContextAware
{
private ApplicationContext applicationContext;
@RequestMapping(value = "/purchased/songs", method = RequestMethod.GET)
public String home(Model model)
{
SessionManager.startOperation();
ChargeTryDAOBase ctdb=new ChargeTryDAOBase();
List <ChargeTry> data=ctdb.findByRemoteId("dsfsdfsdf8");
SessionManager.endOperation();
model.addAttribute("result", "data" );
return "home";
}
@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException
{
this.applicationContext = arg0;
}
}
在 Tomcat 上运行此代码时,出现以下错误:
org.springframework.web.util.NestedServletException: Handler processing
nested exception is java.lang.NoSuchMethodError:
org.hibernate.SessionFactory.getCurrentSession()Lorg/hibernate/Session;
.....
java.lang.NoSuchMethodError:
org.hibernate.SessionFactory.getCurrentSession()Lorg/hibernate/Session;
当我更改一些 Hibernate 依赖项时,我收到以下错误:
java.lang.IllegalStateException: Could not locate SessionFactory in JNDI
当我在一个简单的 Java 应用程序中测试上述代码时,一切正常。
这是一个spring-hibernate配置问题吗?
谢谢您的帮助。