Java Spring Hibernate SessionFactory-不将表映射到类

Java Spring Hibernate SessionFactory-不将表映射到类,java,spring,hibernate,Java,Spring,Hibernate,我在应用程序中设置SessionFactory时遇到问题。我在dispatcher-servlet.xml中编写了 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${database.driver}" /> <property

我在应用程序中设置SessionFactory时遇到问题。我在dispatcher-servlet.xml中编写了

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <property name="driverClassName" value="${database.driver}" />
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.user}" />
    <property name="password" value="${database.password}" />

    </bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />     
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
        </props>
    </property>
</bean>
我的应用程序在运行时总是在方法openSession()上提供NullPointerException


请注意,我没有使用任何带注释的DAO。我正在尝试直接连接数据库表,而无需为每个表使用POJO,并尝试实现本机查询而不是HQL。可以这样做吗?

您应该以某种方式标记包含sessionfactory的类(例如:@service)

在任何情况下,您使用hibernate的方式都是错误的:hibernate非常棒,因为它可以为您管理sql执行,它使db交互变得容易。如果只使用本机查询,而不使用任何pojo,则hibernate是无用的。我告诉你们更多:在这种情况下,hibernate甚至很糟糕,它会造成浪费的数据结构,而你们永远不会使用它。冬眠是伟大的,但当然不是光

我的建议是:使用SpringJDBC模板


希望有帮助。

1-添加事务支持-

            <bean id="transactionManager"    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                 <property name="sessionFactory" ref="sessionFactory" />
            </bean>

是的,有可能。。。但是您需要为这个类定义一个注释,在这个类中打开会话。。。类似于“对不起,战友”。。这没用。。我一直在服务。。但是仍然是NullPointerException,您可以创建spring上下文,类似这样:
ApplicationContext context=new ClassPathXmlApplicationContext(新字符串[]{“dispatcher servlet.xml”})?在web.xml文件contextConfigLocation/web-INF/dispatcher-servlet.xml中,我完全理解您的观点。但是没有办法做到这一点吗?我在调用SessionFactory的类中使用了@Service。。但SessionFactory仍然为null。我也尝试过Respository,但问题是一样的。将org.springframework.orm.hibernate3.LocalSessionFactoryBean更改为org.springframework.orm.hibernate3.annotation.annotationsessionfactorybean完成。。但是sessionFactory仍然为空。我无法执行任何查询。好的,我们需要更深入:您是否在web.xml中定义了servlet?如下所示:dispatcher org.springframework.web.servlet.DispatcherServlet 1是的,它包含在web.xml dispatcher org.springframework.web.servlet.DispatcherServlet 2中。最好包含关于如何执行此操作的实际细节。
            <bean id="transactionManager"    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                 <property name="sessionFactory" ref="sessionFactory" />
            </bean>
  <tx:annotation-driven/>
         @Transactional