1
下面是我正在使用的JPA設置。我能夠按預期刪除對象,但是我需要提供一個完整的對象。雖然我不介意這樣做,但我並不認爲這是最佳做法。有沒有類似於findByProductId(int productsId)函數的方法,我可以使用它來刪除JPA本地部分的產品?如何更改JPA /休眠刪除基於ID而不是對象
DAO
void delete(Products productToDelete);
DAOimpl
@Transactional
public void delete(Products productToDelete){
productsManager.delete(productToDelete);
}
經理
@Resource
@Transactional(readOnly = true)
public interface ProductsManager extends JpaRepository<Products,Integer> {
Products findByProductId(int productsId);
List findAll();
}
下面是測試
@Test
public void delete() throws Exception{
Products productToCreate = new Products();
productToCreate.setProductName("Test Product");
productsDao.createProduct(productToCreate);
List loaded = productsDao.findAll();
System.out.println("Product: " + loaded);
assertNotNull(loaded);
productsDao.delete(productsDao.getProductsById(1));
List loadedTwo = productsDao.findAll();
System.out.println("Product After Del: " + loadedTwo);
assertEquals(loadedTwo.size(),0);
}
我會如何在我的DAO中公開? – zmanc 2013-02-26 17:30:05
假設'Products'的id是'Long',可以在'DAO'接口添加一個'void delete(Long id)'方法,並通過調用'productsManager.delete(id);'DAOimpl'來實現。 ' – zagyi 2013-02-26 18:04:56
非常感謝你。這工作如解釋。 – zmanc 2013-02-26 18:15:16