gpt4 book ai didi

java - Neo4J SDN 4 无法保存

转载 作者:行者123 更新时间:2023-12-01 18:05:45 26 4
gpt4 key购买 nike

这是我的配置

@EnableTransactionManagement
@EnableScheduling
@EnableAutoConfiguration
@ComponentScan(basePackages = {"id.co.babe.neo4j.service"})
@Configuration

public class MyNeo4jConfiguration extends Neo4jConfiguration {
private static final Logger LOGGER = LoggerFactory.getLogger(MyNeo4jConfiguration.class);

@Value("${neo4j.server.user}")
private String user;
@Value("${neo4j.server.pass}")
private String pass;
@Value("${neo4j.server.host}")
private String host;

@Override
public Neo4jServer neo4jServer() {
return new RemoteServer(host,user,pass);
}

@Override
public SessionFactory getSessionFactory() {
return new SessionFactory("app.neo4j.domain");
}

@Bean
@Primary
public Neo4jOperations getNeo4jTemplate() throws Exception {
return new Neo4jTemplate(getSession());
}

这是我的域用户

@NodeEntity
public class User{
@GraphId
private Long Id;
private String name;
private int age;
private String country;

和我的服务接口(interface)

public interface UserService { 
public User create(User user);
public User read(User user);
public List<User> readAll();
public User update(User user);
public Boolean delete(User user);
}

以及我的实现

@Service
@Transactional
public class UserServiceImpl implements UserService{

@Autowired
Neo4jOperations template;

@Override
public User create(User user){
return template.save(user);
}

这是我的主课

for(int i = 0; i < 10; i++){
app.neo4j.domain.User user = new app.neo4j.domain.User();
user.setAge(13);
user.setCountry("Philly");
user.setId(i);
user.setName("Ibanez" + i);
LOGGER.info("Inserting {}",user.getName());
service.create(user);
}

没有发现错误,但是当我转到 Neo4j 控制台 (localhost:7474) 并运行此查询 match(n) return n 时,它应该返回数据库中的所有节点。不幸的是,即使我能够正确保存,也没有找到节点。我想知道怎么了。

我还尝试使用 @enablingNeo4jRepositories 进行此操作,结果没有任何差异。

最佳答案

您的代码永远不应设置@GraphId 字段的值。该字段在内部用于将实体附加到图表。

如果您删除user.setId(i);,您的实体应该会正确保存。

请注意,您可以添加自己的自定义 ID 字段,但您仍然需要 GraphID 的另一个字段,例如

@GraphId private Long graphId; //used internally, never assign a value
private Long id; //your application id, stored as a property on the entity

关于java - Neo4J SDN 4 无法保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36569025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com