Java Spring Hibernate SessionFactory-不将表映射到类
我在应用程序中设置SessionFactory时遇到问题。我在dispatcher-servlet.xml中编写了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
<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