- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试通过 Spring 的 CrudRepository 从我的数据库中删除所有记录时测试 Controller 类,但似乎什么也没发生。默认情况下似乎没有刷新。
我从来没有在浏览器中使用 Junit 测试在真正的 Controller 调用中尝试过这个存储库,但我认为它会工作得很好! :)
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
@ActiveProfiles("test")
@Transactional
public class CostumerControllerIntegrationTest {
@Autowired
private MockMvc mockMvc;
@Autowired
private CostumerService costumerService;
private Costumer costumer;
@Before
public void before() {
this.costumer = this.exampleBuilder();
costumerService.saveAll(this.costumer);
}
@After
public void after() {
costumerService.deleteAll();
}
@Test
public void Should_ReturnStandardError_When_NotFoundById() throws Exception {
//implementation
}
private Costumer exampleBuilder() {
Costumer costumer = new Costumer("Test", "Test", "Test", CostumerType.LEGAL_PERSON);
State state = new State("Example State");
City city = new City("Example Sity", state);
Address address = new Address("Example Address",
"Example Address", "Example Address",
"Example Address", city, costumer);
costumer.getAddresses().add(address);
return costumer;
}
@Service
@Transactional
public class CostumerService {
@Autowired
private CostumerRepository repository;
public void deleteAll() {
repository.deleteAll();
}
//another methods
}
扩展 CrudRepository 的存储库
@Repository
public interface CostumerRepository extends CrudRepository<Costumer, Integer> {
}
根据@TheCoder注释开启显示sql hibernate.show_sql=true
后,结果为:
@After
上的 deleteAll()
:
@After
public void after() {
costumerService.deleteAll();
}
输出sql:
2019-02-27 06:07:06 - HHH000397: Using ASTQueryTranslatorFactory
Hibernate:
select
costumer0_.id as id1_3_,
costumer0_.cpf_cnpj as cpf_cnpj2_3_,
costumer0_.email as email3_3_,
costumer0_.name as name4_3_,
costumer0_.type as type5_3_
from
costumers costumer0_
@AfterTransaction
上的deteleAll()
输出sql 包括删除查询。
@AfterTransaction
public void afterTransatcion(){
// List<Costumer> costumers = costumerService.findAll();
costumerService.deleteAll();
}
Hibernate:
select
costumer0_.id as id1_3_,
costumer0_.cpf_cnpj as cpf_cnpj2_3_,
costumer0_.email as email3_3_,
costumer0_.name as name4_3_,
costumer0_.type as type5_3_
from
costumers costumer0_
Hibernate:
delete
from
phones
where
costumer_id=?
Hibernate:
delete
from
costumers
where
id=?
最佳答案
在我的 junit 中,在 @BeforeEach
方法中添加 repository.deleteAllInBatch()
之后对我有用。仅在执行 junit 时遇到此问题。
@BeforeEach
public void config()
{
repository.deleteAllInBatch()
}
关于java - Spring CrudRepository deleteAll() 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54891504/
我已经设置了一个登录过程,在该过程中生成验证码,成功后将被删除。但是,我想确保如果同一用户有多个验证码,登录成功后,删除该用户的所有记录。 这是我的代码 if ($model->validate()
如果我有一个带有这样主键的 Realm 类: class Thing: Object{ @objc dynamic var id = UUID().uuidString override st
我正在尝试从 RestoFoods 中删除数据这样的模型: RestoFoods::deleteAll(["restaurant_id"=>$postData['resto_id'], 'food_i
我有对 API 执行 CRUD 操作的测试。在每次测试之前,都会重新创建 API 中的测试数据。意思是删除数据库中的所有数据并再次插入测试数据。 public void initDatabase()
我有一个域类 Widget,我需要从中删除所有实例——清除它。之后,我将加载新数据。你有什么建议作为一种机制来做到这一点? 附言请注意,这不是在引导时,而是在“运行时”。 最佳答案 最简单的方法是直接
当我尝试通过 Spring 的 CrudRepository 从我的数据库中删除所有记录时测试 Controller 类,但似乎什么也没发生。默认情况下似乎没有刷新。 我从来没有在浏览器中使用 Jun
我正在为我的应用程序使用 Realm。注销应用程序时,我在 Realm 上使用 deleteAll,但 Realm 文件大小与注销前相同。 在注销之前我还需要做些什么来删除所有文件并减少文件的事务大小
我正在使用带有 Postgres 9.4 的 CakePHP v3.17 我正在尝试让 $this->SomeTable->deleteAll([...]) 也删除连接表中的记录。 用一张停靠点表和一
考虑以下代码: const person = Immutable.Map({ name: 'John', surname: 'Maverick', age: 39 }); co
我正在尝试使用 hibernate (Spring JPA)实现以下 native 查询逻辑。但是如果记录之一无法持久化, save(Iterable) 会抛出异常并回滚整个事务。有什么办法可以捕获记
我正在尝试在我限定其中一个类属性值(Member.submissionId 和submission.id 作为长类型)的域类上运行 delete all。 这是我的代码: def memberCoun
考虑以下两种删除名为“John”的员工集的方法。 List list = new ArrayList(); String query= " from Employee emp where emp.
我正在努力做这件事,我想基本上做一个数据库 deleteAll ,其中一个字段等于某物而另一个字段不能等于某物..它用于删除重复行所以我想删除除一个以外的所有行行..我在下面尝试的方法不起作用,我将不
我尝试使用 spring boot 2.1.0.RELEASE 实现 ignite 2.6.0,但是当我全新安装代码时,出现以下异常: name clash: deleteAll(java.lang.
我正在尝试从通过 Xamarin.forms 的 nuget 包 sqlite-net-pcl(1.5.166-beta) 访问的 sqlite 数据库表中删除所有项目。 方法DeleteAllAsy
使用的示例代码: public static void main(String[] args) { HazelcastInstance hz = Hazelcast.n
我试图从服务器上删除已存在超过 1 天的图像,但由于某种原因,即使我将限制设置为 1000,它也只删除了 20 个图像。 代码如下: Parse.Cloud.job("deleteImages", f
使用 JpaRepository deleteAll()生产 org.springframework.orm.jpa.JpaObjectRetrievalFailureException在具有多对一关
我目前使用标准的 jparepository 方法 repository.deleteAll() 在添加新信息之前清理我的表。该表由 8300 行组成,每行 5 列。目前将它们全部删除大约需要 80
我是一名优秀的程序员,十分优秀!