2016-05-06 59 views
0

我正在构建一个spring 4 + Hibernate5应用程序。我想知道在通过DataSource对象和hibernate.connection.url,hibernate.connection.username等hibernate属性来定义数据库连接属性(例如url,username等)方面是否有任何区别。Offcourse最终会将数据源对象被绑定到会话工厂。只是想确保以正确的方式做事。spring + testng + hibernate right session for session factory

我想通过dataSource属性定义一个单独的datesource对象,以便我可以对测试用例使用AbstractTransactionalTestNGSpringContextTests。这个类总是期待一个数据源对象。我想使用@Rollback功能,此功能正在使用AbstractTransactionalTestNGSpringContextTests。 AbstractTestNGSpringContextTests不支持回滚功能,但仍然保持完美。

需要以正确的方式输入工具。

添加示例代码以提供更多信息。

@ContextConfiguration(locations = { "classpath:spring/fpda_persistence_config.xml" }) 
@Rollback 
@Transactional 
public class BankTransactionDAOTest extends AbstractTestNGSpringContextTests { 


    @Autowired 
    private BankTransactionDAO bankTransactionDao; 

    @Test 
    public void createBankTransactionTest(){ 

     BankTransaction bt = new BankTransaction(); 
     bt.setAuthoritativeTableId(new BigDecimal(1234)); 
     bt.setBankTransactionTypeCode(new Character('C')); 
     bt.setInstanceId(new BigDecimal(1234)); 
     bt.setRowCreatedEpochTime(new BigDecimal(1234)); 
     bt.setTransactionId(new BigDecimal(1234)); 
     bt.setTransactionKey(new BigDecimal(System.currentTimeMillis())); 
     bankTransactionDao.createBankTransaction(bt); 
    } 
} 

这里进行交易回滚成功地发生了,我才知道,我们应该扩大AbstractTransactionalTestNGSpringContextTests代替AbstractTestNGSpringContextTests。然后,我应该声明数据源属性,而不是在hibernate属性中定义所有属性。 所以整体来说,它是一个正确的方法来声明一些属性在数据源和一些属性在休眠?它会有所作为吗?

在此先感谢。

回答

0

在我们的项目中,我们使用的是类级别的注解测试类 @TestPropertySource(locations = "classpath:application-test.properties")

+0

是装载性能的这种方式可以是一个不错的办法。但是我主要关心的是,我们是否可以在datasoruce属性中定义少数属性,而在休眠特性方面却很少。这是一个正确的方法吗? –