package jpa.project.repo;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
import jpa.project.entity.Person;
@EnableAutoConfiguration
@ContextConfiguration(classes = PersonRepo.class)
@DataJpaTest
public class PersonRepoTest {
@Autowired
private PersonRepo personRepoTest;
@Test
public void testPersonRepo() throws Exception {
Person toSave = new Person();
toSave.setPersonId(23);
if (personRepoTest == null) {
System.out.println("NULL REPO FOUND");
}
personRepoTest.save(toSave);
Person getFromDb = personRepoTest.findOne(23);
Assert.assertTrue(getFromDb.getPersonId() == 23);
}
}
当使用像@DataJpatest这样的测试切片时,问题是Spring引导只会加载一组特定的类。请参阅Spring文档中的这一部分:
如果要测试JPA应用程序,可以使用@datajpatest。默认情况下,它将配置内存中的嵌入式数据库、扫描@Entity类并配置Spring Data JPA存储库。常规的@Component bean不会加载到ApplicationContext中。
@repository被认为是常规的@组件,因为它不是Spring Data JPA存储库(接口是)。所以,它没有加载。默认情况下只加载存储库接口,如下所示:
public interface PersonRepo extends JpaRepository<Person, Long> {
...
}
要解决问题,可以强制@DataJpatest加载所有@Repository类:
@DataJpaTest(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Repository.class))
或者只将需要的@Repository类导入到测试中:
@Import(PersonRepo.class)
这里有另一个类似的问题:使用@datajpatest的Spring测试不能自动使用@repository的类(但是使用接口repository可以工作!)
我有带有Spring、Hibernate/JPA和Spring数据的webapp。我为一些实体创建了扩展JpaRepository的存储库,如果某些字段名简单为id(findById)或findByRole(其中Role是enum或findByActive,其中active是给定实体中的布尔字段),那么使用缺省方法如.save(T)或saveAndFlush、findAll甚至findBy都很好。
我正在处理一个自动化的hashicorp保险库进程,我需要重复运行保险库操作符init命令,因为试错测试,我试图卸载保险库并再次安装,但似乎这并没有删除以前的解封密钥+根令牌,我该如何做到这一点? 我在某个地方读到,我需要删除存储“文件”路径,我已经删除了,但它不起作用(实际上我的/opt/vault/data/目录是空的),下面是我的vault.hcl文件:
有人能告诉我如何初始化存储,以便它工作并返回一个有效的对象。 我的Node.js版本是8.12.0,firebase版本是5.1.1
问题内容: 当我测试新插件时,不断抛出异常:java.lang.IllegalArgumentException:插件已初始化!请帮忙!这是代码: 我知道您只应该为每个插件声明一个JavaPlugin类,我认为我正在这样做。但它一直在说: 我真的需要测试此插件,看看它是否有效,任何帮助将不胜感激!谢谢! 问题答案: stacktrace清楚地指出了问题出在哪里。什么是堆栈跟踪,如何使用它来调试应用
问题: > 我在Jenkins中配置了JDK、Git和maven安装路径。还在管理插件中的高级选项卡下配置了代理 我在Eclipse上有一个Java的项目,我使用EGit插件托管在一个存储库上,我正试图通过https将其连接到詹金斯 我在Jenkins中创建了一个新工作,添加了存储库URL(https://@bitbucket.org//.git),并在下一步添加了我的凭据。这就是我得到以下错误:
通过证书口述的正确方法是什么?