spring-boot - Spring Data Neo4J @Index(unique = true) 不起作用
问题描述
我想将 User 节点中的 userName 属性设为唯一。我使用了下面的代码,但它没有在 Neo4j 数据库中创建唯一约束。
@Property(name = "name")
@Index(unique = true)
private String usreName;
仅供参考,我使用的是 Neo4j 服务器版本:3.3.6(社区)和 Spring Boot 2。
但是如果我自己在 Neo4j 浏览器中创建一个约束,它就可以工作。
CREATE CONSTRAINT ON (user:User) ASSERT user.userName IS UNIQUE
有没有办法强制 Spring Data Neo4J 创建独特的属性,而不是我自己在数据库中创建它们?
解决方案
如果您希望应用程序代码创建约束,则需要配置自动索引管理器。您可以在文档中找到最合适的选项: https ://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#reference:indexing:creation
只是关于这个主题的一个注释:想想像 Hibernate 的 DDL 支持这样的自动索引创建。它是开发时的帮手。您不应该在生产环境中使用assert
and update
,而只能使用validate
.
推荐阅读
- oracle - oracle apex 移动应用程序
- java - ForkJoinPool 和查询的并行执行
- node.js - 图像在某些页面上显示但在其他页面上不显示的问题
- javascript - 如何以适当的方式在Javascript中对给定数组执行crud操作
- android - Google Play 内部应用共享不再适用于任何设备
- jmeter - 使用终极线程组时JMeter频率峰值
- spring - 如何使用 Thymeleaf 从外部文件夹加载模板
- ms-word - 有没有办法防止在 OpenOffice 中编辑 MS docx 文档?
- javascript - 如何通过模型显示在 ajax 请求中传递动态 url?
- c# - 如何用从另一个类(第 3 类)传递给一个类(第 2 类)的对象填充列表?