SpingMVC+JPA(Hibernate)整合

cuiyanlei2010 2012-03-23 10:52:12
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>

<property name="url">
<value>jdbc:mysql://localhost:3306/springmvc</value>
</property>

<property name="username">
<value>root</value>
</property>

<property name="password">
<value>123123</value>
</property>

</bean>

<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"></bean>

<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

<property name="dataSource" ref="dataSource"></property>

<property name="persistenceUnitName" value="springmvcTest" />

<property name="jpaVendorAdapter" ref="jpaVendorAdapter"></property>


</bean>

<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL"></property>
<property name="showSql" value="true"></property>
<property name="generateDdl" value="false"></property>
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"></property>
</bean>

<bean id="userDAO" class="com.xupt.dao.impl.UserDAOImpl">
<property name="entityManagerFactory" ref="entityManagerFactory"></property>
</bean>

<bean id="userService" class="com.xupt.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

</beans>

大侠们,这是我们applicationContext.xml文件,在UserDAO中调用this.getJpaTemplate().persist(user)方法不会出错,但是无法持久化到数据库,检查数据库链接没有问题。

这是DAO
package com.xupt.dao.impl;

import org.springframework.orm.jpa.support.JpaDaoSupport;

import com.xupt.bean.User;
import com.xupt.dao.UserDAO;

public class UserDAOImpl extends JpaDaoSupport implements UserDAO {

@Override
public void saveUser(User user) {

System.out.println(this.getJpaTemplate().getEntityManager());

this.getJpaTemplate().persist(user);
}
}

刚刚接触SpringMVC整合JPA,各位大侠们帮帮忙啊!!!
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gonglina0316 2012-03-29
  • 打赏
  • 举报
回复
哦哦,看到了,呵呵,写错了你没看到吗
gonglina0316 2012-03-29
  • 打赏
  • 举报
回复
注解我看看你的源码才知道啊
gonglina0316 2012-03-23
  • 打赏
  • 举报
回复
嘿嘿。记得使用spring的AOP在配置文件中设置你的方法需要提交明白,否则是持久化不到数据库的
cuiyanlei2010 2012-03-23
  • 打赏
  • 举报
回复
为什么没有人回答啊!!!!坐等!!!!
cuiyanlei2010 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gonglina0316 的回复:]

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

<!-- 声明式事务帮助业务逻辑实现数据库CUD -->
<!-- 添加事务 -->
<bean id="myTxManager"
class="org.springframew……
[/Quote]

而且JpaTemplate的EntityManager是null
cuiyanlei2010 2012-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gonglina0316 的回复:]

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

<!-- 声明式事务帮助业务逻辑实现数据库CUD -->
<!-- 添加事务 -->
<bean id="myTxManager"
class="org.springframew……
[/Quote]

我用的注解写的事务,为什么不行?
gonglina0316 2012-03-23
  • 打赏
  • 举报
回复
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

<!-- 声明式事务帮助业务逻辑实现数据库CUD -->
<!-- 添加事务 -->
<bean id="myTxManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 将通知给这个切点 advice-ref表示事务通知,pointcut-ref表示谁需要这个事务-->
<aop:config>
<aop:pointcut id="bizServiceMethods"
expression="execution(* involar.*.dao.impl.*.*(..))" />
<aop:advisor advice-ref="txAdvice"
pointcut-ref="bizServiceMethods" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="myTxManager">
<tx:attributes>
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="execSql" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="read*" propagation="SUPPORTS"
read-only="true" />
</tx:attributes>
</tx:advice>


</bean>

只有添加的事物才可以OK呵呵

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧