Tag: neo4j

防止回滚 – Spring Data,JUnit和Neo4J

我有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() {…} 但是注释被忽略? 我似乎有大多数相反的问题,在那里需要回滚,但它不工作:)在我的情况下,回滚完美的作品,我想关闭它。

有没有什么办法可以编写一个存储过程或类似的东西,但在Cypher中,不是Java?

我知道你可以写一些可以从Cypher调用的扩展,但是我真的很想避免写Java。 我在想类似于SQL Server存储过程的东西。 这是可能的,或者我可能会写一个Cypher查询,并包装在一些最小的Java,使目前的能力工作?

Spring数据Neo4j受影响的行数

考虑一个Spring Boot,neo4j环境与Spring-Data-neo4j-4我想做一个删除,并得到一个错误信息,当它删除失败。 我的问题是因为Repository.delete()返回void我没有ideia如果删除修改任何东西或不。 第一个问题:有没有办法得到最后一个查询受影响的行? 例如在plsql中,我可以执行SQL%ROWCOUNT 所以无论如何,我尝试了下面的代码: public void deletesomething(Long somethingId) { somethingRepository.delete(getExistingsomething(somethingId).getId()); } private something getExistingsomething(Long somethingId, int depth) { return Optional.ofNullable(somethingRepository.findOne(somethingId, depth)) .orElseThrow(() -> new somethingNotFoundException(somethingId)); } 在上面的代码中,我查询数据库来检查值是否存在,然后删除它。 第二个问题:你推荐什么不同的方法? 所以现在,只是为了增加一些复杂性,我有一个集群数据库,db1只能创建,更新和删除,而db2和db3只能读取(这是由集群套接字保证的)。 db2和db3将从复制过程中接收来自db1的数据。 对于我目前看到的复制可能需要长达90秒,这意味着高达90年代的数据库将有不同的状态。 再看看上面的代码: public void deletesomething(Long somethingId) { somethingRepository.delete(getExistingsomething(somethingId).getId()); } 在调试中意味着: getExistingsomething(somethingId).getId() // will hit db2 somethingRepository.delete(…) // will hit db1 所以如果复制没有在db2中插入这个值,这个代码将会抛出异常。 第二个问题是:不改变这些套接字是否有任何方法可以删除并给出正确的响应?

Neo4J存储库没有连线到处

我已经定义了一个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 […]

Spring Data Neo4j 5的EntityScan在使用Kotlin时包含了伴随对象

我通过Spring Boot 2.0.0.M4使用Spring Data 5。 我注意到当使用@EntityScan并提供一个包时,它包括扫描由Kotlin生成的“内部”类。 在我的例子中,我只有一个属性,但我也尝试过companion object { <property here> } ,它仍然出错。 是否有过滤掉Kotlin生成的这些内部类? 这是我得到的异常: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jMappingContext': Invocation of init method failed; nested exception is java.lang.UnsupportedOperationException: This class is an internal synthetic class generated by the Kotlin compiler, such as an anonymous class for a lambda, a SAM wrapper, a […]