【发布时间】:2018-07-26 12:53:01
【问题描述】:
我正在尝试使用 @DataJpaTest 执行一些测试,但我无法保存我的对象来创建我的断言。
当我尝试保存我的实体时,我在日志中有以下结果:
15/02/2018 14:58:40.565 WARN [main] org.hibernate.engine.jdbc.spi.SqlExceptionHelper: SQL Error: -5501, SQLState: 42501
15/02/2018 14:58:40.565 ERROR [main] org.hibernate.engine.jdbc.spi.SqlExceptionHelper: user lacks privilege or object not found: MY_VIEW in statement [select validviewl0_.cpf as cpf1_0_0_, validacaol0_.rating as rating7_0_0_ from dbo.my_view validviewl0_ where validviewl0_.cpf=?]
这是我对测试类的注释:
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = Replace.ANY, connection = EmbeddedDatabaseConnection.HSQL)
public class MyRepositoryTest {
@Autowired
private TestEntityManager testEntityManager
@Autowired
private MyRepository myRepository;
@Before
public void setup() {
Assert.assertTrue(testEntityManager.getEntityManager().isOpen());
testEntityManager.persist(MyEntity.builder()
.cpf("11122233344").build());
testEntityManager.flush();
}
@After
public void after() {
testEntityManager.clear();
}
}
最大的问题是我不知道如何授予此访问权限,并且与此消息有关:用户缺少权限或找不到对象:MY_VIEW
Obs.:真正的数据库(不在内存中,不在本次测试中)是 MS SQL Server。
【问题讨论】:
-
test数据库中的数据库表是自动创建的吗?您可以尝试在测试属性中设置
spring.jpa.hibernate.ddl-auto=create-drop
标签: spring spring-data-jpa hsqldb spring-test in-memory-database