我有spring的数据Neo4j连接起来,很好地工作。 我建立了几个unit testing,并在测试类上使用@Transactional注释。 测试运行,但他们写的数据总是回滚。 在日志中我可以看到: ] onodrivers.http.request.HttpRequest … request: {“statements”:[{“statement”:”UNWIND {rows} as row MATCH … 但是我想压制这个,我尝试过使用(在Kotlin中): @Test @Commit fun myDbTest() {…} 和 @Test @Rollback(false) fun myDbTest() {…} 但是注释被忽略? 我似乎有大多数相反的问题,在那里需要回滚,但它不工作:)在我的情况下,回滚完美的作品,我想关闭它。
我已经定义了一个Neo4j存储库(代码在Kotlin中,但它非常接近Java): @Repository interface UserRepository : GraphRepository<User> { fun findByEmail(email: String): User? @Query("match (n:User)-[:IS_AUTH]->(:Permission {name: {0}}) where id(n) = {1} return n") fun authorizedUser(permission: String, userId: Long): User? } 在一个控制器中,我写了: @Controller @RequestMapping("/company") open class CreateCompanyController { @Autowired private lateinit var userRepo: UserRepository @RequestMapping(method = arrayOf(RequestMethod.POST)) @ResponseBody fun createCompany(@RequestParam(value = "name", required = true) name: String, @RequestParam(value […]
说,我有以下界面: interface AppRepository : GraphRepository<App> { @Query("""MATCH (a:App) RETURN a""") fun findAll(): List<App> } 在测试中,我想检查查询字符串的具体情况,因此我做 open class AppRepositoryTest { lateinit @Autowired var appRepository: AppRepository @Test open fun checkQuery() { val productionMethod = appRepository.javaClass.getDeclaredMethod("findAll") val productionQuery = productionMethod!!.getAnnotation(Query::class.java) //demo test assertThat(productionQuery!!.value).isNotEmpty() //KotlinNPE } } 由于我不理解的原因, productionQuery是null 。 我已经双重检查了测试类中导入的Query的类型和存储库中的Query是相同的。 因此,在这种情况下为什么productionQuery null ?
我已经添加了以下注释: @EnableNeo4jRepositories(basePackages = "myApp") 在Java中工作正常,但Kotlin编译器给出: (40, 51): Type mismatch: inferred type is kotlin.String but kotlin.Array<kotlin.reflect.KClass<*>> was expected