Spring 尝试将Json插入Neo4j
大家好,我是neo4j的新手,我正在尝试将Json输入neo4j,但我得到的是匹配语句,而不是创建语句。早些时候,我自己尝试了一些东西,当我插入Json消息时,只作为 {“姓名”:“约翰”,“系”:“科学”} 它没有出现故障,但每次我想要添加数字数据时,它都会出错Spring 尝试将Json插入Neo4j,spring,spring-boot,neo4j,spring-kafka,spring-data-neo4j,Spring,Spring Boot,Neo4j,Spring Kafka,Spring Data Neo4j,大家好,我是neo4j的新手,我正在尝试将Json输入neo4j,但我得到的是匹配语句,而不是创建语句。早些时候,我自己尝试了一些东西,当我插入Json消息时,只作为 {“姓名”:“约翰”,“系”:“科学”} 它没有出现故障,但每次我想要添加数字数据时,它都会出错 2020-03-10 13:21:59.793 INFO 94817 --- [ntainer#0-0-C-1] o.n.o.drivers.http.request.HttpRequest : Thread: 29, url:
2020-03-10 13:21:59.793 INFO 94817 --- [ntainer#0-0-C-1] o.n.o.drivers.http.request.HttpRequest : Thread:
29, url: http://localhost:7474/db/data/transaction/92, request: {"statements":[{"statement":"UNWIND {rows}
as row **MATCH** (n) WHERE ID(n)=row.nodeId SET n:`UsersInfo` SET n += row.props RETURN row.nodeId as ref,
ID(n) as id, {type} as type","parameters":{"type":"node","rows":[{"nodeId":23,"props":{"name":"raj",
"dept":"science","age":11}}]},"resultDataContents":["row"],"includeStats":false}]}
这些是我的课
卡夫卡形象
@EnableKafka
@Configuration
public class KafkaConfiguration {
@Bean
public ConsumerFactory<String, Users> userConsumerFactory(){
Map<String, Object> config = new HashMap<>();
config.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
config.put(ConsumerConfig.GROUP_ID_CONFIG, "group_json");
config.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
config.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
return new DefaultKafkaConsumerFactory<>(config, new StringDeserializer(),
new JsonDeserializer<>(Users.class));
}
@Bean
public ConcurrentKafkaListenerContainerFactory<String, Users> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<String, Users> factory = new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(userConsumerFactory());
return factory;
}
}
Neo4J服务
@Service
public class Neo4jservice {
@Autowired
private UsersRepo userRepo;
public UsersInfo saveIntoStudentsTable(UsersInfo users) {
UsersInfo usern = userRepo.save(users);
return (usern);
}
}
UsersRepo
@Repository
public interface UsersRepo extends Neo4jRepository<UsersInfo, Long>{
}
同样,UsersInfo类
@NodeEntity
public class Users {
@Id
private Long id;
private String name;
private String dept;
private Integer age;
**getters,setters and toString method here**
}
任何帮助都将不胜感激。谢谢您正在设置
用户
类的id
值。
这将使Spring数据Neo4j和用于持久化的Neo4j对象图映射器认为实体已经存在。
在这种情况下,它将
匹配现有id(n)
上的,并更新日志中显示的属性,而不是创建一个新节点。输入Json是什么意思?通常使用cypher create或merge语句或load CSV或Json加载数据。
public class Users {
private Long id;
private String name;
private String dept;
private Integer age;
**getters,setters and toString method here**
}
@NodeEntity
public class Users {
@Id
private Long id;
private String name;
private String dept;
private Integer age;
**getters,setters and toString method here**
}