当前位置: 代码迷 >> J2EE >> Spring 和Hibernate 整合的有关问题
  详细解决方案

Spring 和Hibernate 整合的有关问题

热度:270   发布时间:2016-04-22 03:40:30.0
Spring 和Hibernate 整合的问题
Spring和hibernate整合之后,执行一个方法,发出了sql语句:Hibernate: insert into users (name, password) values (?, ?)。但是我到mysql查询的时候,并没有查到insert的数据。

当我粘贴这段语句到mysql中执行,是可以顺利执行的,所以sql语句没有问题。而且我写了Try catch语句,没有抛出异常。

我觉得问题在于事物没有提交。请问各位这是个什么原因?

ApplicationContext.xml:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="file:src/hibernate.cfg.xml">
</property>
</bean>

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

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut expression="execution(* com.lizhaog.dao.UserManagementImpl.*.*(..))" id="addManagerMethod"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="addManagerMethod"/>
</aop:config>

<bean id="UserManagementImpl" class="com.lizhaog.dao.UserManagementImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

UserManagementImpl.class:
Java code
    public void addUser(String name, String password){        try {            User user = new User();            user.setName(name);            user.setPassword(password);            this.getSession().save(user);        } catch (DataAccessException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }


User就是一个普通的实体类,包括 id。name 和password三个属性

main方法为:
Java code
    public static void main(String args[]){        BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");        UserManagementImpl userManage = (UserManagementImpl) factory.getBean("UserManagementImpl");        userManage.addUser("test", "2");    }


------解决方案--------------------

com.lizhaog.dao.UserManagementImpl.*.*(..)
这个切面怎么说啊 ~~~ UserManagementImpl 下面的所有方法、所有........!!!
你直接切dao就OK了~~~!
还有、怎么切面切dao干什么?
切Serivce层嘛!
Java code
读到数据的时候必须 插入和查找的两条语句 同时执行。。
------解决方案--------------------
Up...
恭喜。
------解决方案--------------------
在同一个session中是可以查到的。但是由于事务没有提交,另外的session就查不到数据、

探讨

读到数据的时候必须 插入和查找的两条语句 同时执行。。

分开两次执行的时候,就查找不到上次执行时插入的数据了。。。
  相关解决方案