以下は、私が使用しているJPAセットアップです。期待どおりにオブジェクトを削除できますが、オブジェクト全体を提供する必要があります。私はこれを行うことを気にしませんが、それがベストプラクティスであるとは思いません。JPA のネイティブ部分である製品を削除するために使用できる findByProductId(int productsId) 関数に似た方法はありますか?
ダオ
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);
}