嗨,我想尝试从存储库中接收数据,但是我什么也找不到。 我进行自动连线,并在“ src / main”中的java类上工作 但在junit测试中没有
我尝试过任何Jpa信息库的方法,但总是收到“空”参数
初级班
@RunWith(SpringJUnit4ClassRunner.class)
@DataJpaTest
class testClass {
@Autowired
private TestEntityManager entityManager;
@Autowired
private ClienteRepository clienteRepository;
@Test
public void test() {
List<ClienteEntity> cliente = clienteRepository.findAll();
System.out.println(cliente);
}
存储库
@Repository
public interface ClienteRepository extends JpaRepository<ClienteEntity, Integer>{
ClienteEntity findByEmail(@Param("email") String email);
控制台 在控制台中使用system.out.printl时,我始终具有以下输出:
Hibernate: select clienteent0_.id as id1_0_, clienteent0_.cap as cap2_0_, clienteent0_.citta as citta3_0_, clienteent0_.cognome as cognome4_0_, clienteent0_.email as email5_0_, clienteent0_.indirizzo as indirizz6_0_, clienteent0_.nome as nome7_0_, clienteent0_.password as password8_0_, clienteent0_.token as token9_0_ from cliente clienteent0_
[]
a empty list of ClientEntity
答案 0 :(得分:0)
基于@DataJpaTest
个文档:
如果在类路径上有嵌入式数据库,它将配置 还有一个
因此请仔细检查是否没有任何内容,并在需要时遵循此文档:
但是,如果您希望针对真实数据库运行测试,则可以 使用
@AutoConfigureTestDatabase
由于您的测试可能正在使用基于实体注释的嵌入式测试,因此您将再次测试一个空的数据库。
修改
如果您查看@AutoConfigureTestDatabase
,则可以看到测试将根据数据库配置查看哪些属性:
@PropertyMapping(value="spring.test.database")
答案 1 :(得分:0)
根据情况,可能有必要检查测试范围内的其他设置。
在春季启动中,如果有嵌入式数据库,则它由测试范围内的该数据库组成。
答案 2 :(得分:0)
尝试使用此注释。
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = {HCSRepositoryContext.class})