2016-05-06 61 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屬性中定義少數屬性,而在休眠特性方面卻很少。這是一個正確的方法嗎? –