Spring 3.0.5 + Hibernate 3.6 hibernate.show_sql不显示,是否由于使用事务?

问题描述

| 我有一个小Maven项目
            <artifactId>spring-core</artifactId>
            <artifactId>spring-test</artifactId>
            <artifactId>spring-beans</artifactId>
            <artifactId>spring-context</artifactId>
            <artifactId>spring-aop</artifactId>
            <artifactId>spring-context-support</artifactId>
            <artifactId>spring-tx</artifactId>
            <artifactId>spring-orm</artifactId>  
            <artifactId>spring-web</artifactId>
            <artifactId>spring-webmvc</artifactId>
            <artifactId>spring-asm</artifactId>
            <artifactId>log4j</artifactId>
            <artifactId>hibernate-core</artifactId>
            <artifactId>hibernate-cglib-repack</artifactId>
            <artifactId>hsqldb</artifactId>


    <spring.version>3.0.5.RELEASE</spring.version>
    <hibernate.version>3.6.1.Final</hibernate.version>
    <hibernate-cglig-repack.version>2.1_3</hibernate-cglig-repack.version>
    <log4j.version>1.2.14</log4j.version>
    <javax-servlet-api.version>2.5</javax-servlet-api.version>
    <hsqldb.version>1.8.0.10</hsqldb.version>
    <mysql-connector.version>5.1.6</mysql-connector.version>
    <slf4j-log4j12.version>1.5.2</slf4j-log4j12.version>
    <slf4j-api.version>1.5.8</slf4j-api.version>
    <javaassist.version>3.7.ga</javaassist.version>
这是我的applicationContext:
    <context:component-scan base-package=\"com.project.personal.admin.model\"/>
<context:annotation-config />

<bean id=\"propertyconfigurer\" class=\"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer\">
    <property name=\"locations\">
        <list>
            <value>classpath:mysql.hibernate.properties</value>
            <value>classpath:mysql.jdbc.properties</value>
        </list>
    </property>
</bean>
<context:annotation-config/>

<bean id=\"dataSource\" class=\"org.springframework.jdbc.datasource.DriverManagerDataSource\">
    <property name=\"driverClassName\" value=\"${jdbc.driverClassName}\" />
    <property name=\"url\" value=\"${jdbc.url}\" />
    <property name=\"username\" value=\"${jdbc.username}\" />
    <property name=\"password\" value=\"${jdbc.password}\"  />
</bean>
<bean id=\"sessionFactory\" class=\"org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean\">
    <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>
            <prop key=\"hibernate.format_sql\">${hibernate.format_sql}</prop>
            <prop key=\"hibernate.hbm2ddl.auto\">${hibernate.hbm2ddl.auto}</prop>
        </props>
    </property>
    <property name=\"packagesToScan\" value=\"com.project.personal.admin.model.domain\" />
</bean>
<bean id=\"transactionManager\" class=\"org.springframework.orm.hibernate3.HibernateTransactionManager\">
    <property name=\"sessionFactory\" ref=\"sessionFactory\" />
</bean>
mysql.hibernate.properties
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=create
这是一个小测试班
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={\"classpath:META-INF/test-project-admin-config.xml\"})
@TransactionConfiguration(defaultRollback=true)
@Transactional
public class UserDAOImplTest {

  @Resource(name=\"manager\")
  Manager manager;

  @Autowired
  UserDAO userDAO;

  public UserDAOImplTest() {
  }



@Test
public void testSave() {
    User u1 = manager.CreateUser();
   //.....
    userDAO.save(u1);
    User expResult = u1;

    User result = (User)userDAO.getById(u1.getId());

    Assert.assertEquals(expResult,result);
    Assert.assertEquals(expResult.getId(),result.getId());

}

@Test
public void testUpdate(){

    User u2 = manager.CreateUser();
    //....
    u2.setPassword(\"mypassword\");
    userDAO.save(u2);

    User fromdb =(User) userDAO.getById(u2.getId());

    fromdb.setEmail(\"[email protected]\");
    userDAO.save(fromdb);

    User result = (User) userDAO.getById(fromdb.getId());

    Assert.assertNotNull(result);
    Assert.assertEquals(fromdb.getEmail(),result.getEmail());

}
} 到目前为止,所有运行文件测试的操作都成功完成了,但是只是没有sql输出,我想知道是什么原因造成的。因为这是我第一次依赖trasactionConfiguration,所以我认为这可能是sql的原因未显示,而不是其他先前的项目显示sql。 我该如何像强制执行sql脚本一样解决该问题(尚未使用log4j) 谢谢阅读。     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)