gpt4 book ai didi

java - 重新启动 Spring Boot 应用程序时 Neo4j 返回 null

转载 作者:行者123 更新时间:2023-12-02 03:19:52 25 4
gpt4 key购买 nike

我正在开发一个使用 Neo4j 进行数据存储的 Spring Boot 应用程序,

我有SkillCategorySkills 的关系。因此,一个 SKillCategory 包含许多技能。以下是域结构:

技能.java

@NodeEntity
public class Skill extends BaseEntity {
private String name;
private boolean isVerified;
private boolean isEnabled = true;
@Relationship(type = SKILL_OF_LEVEL, direction = "OUTGOING")
private SkillLevel skillLevel;

public Skill() {
}

public Skill(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public boolean isEnabled() {
return isEnabled;
}

public void setEnabled(boolean enabled) {
isEnabled = enabled;
}

public boolean isVerified() {
return isVerified;
}

public void setVerified(boolean verified) {
isVerified = verified;
}

public SkillLevel getSkillLevel() {
return skillLevel;
}

public void setSkillLevel(SkillLevel skillLevel) {
this.skillLevel = skillLevel;
}
}

SkillCategory.java

@NodeEntity
public class SkillCategory extends BaseEntity {
private String name;
private boolean isEnabled = true;
@Relationship(type = CONTAINS_SKILL,direction = "OUTGOING")
private List<Skill> skillList;

public SkillCategory() {
}

public SkillCategory(String name) {
this.name = name;
}

public SkillCategory(String name, List<Skill> skillList) {
this.name = name;
this.skillList = skillList;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public boolean isEnabled() {
return isEnabled;
}

public void setEnabled(boolean enabled) {
isEnabled = enabled;
}

public List<Skill> getSkillList() {
return skillList;
}

public void setSkillList(List<Skill> skillList) {
this.skillList = skillList;
}
}

我正在使用GraphRepository来执行CRUD操作。我正在应用程序启动时创建 SkillCategorySkills

问题是:如果我删除数据库并启动 Spring Boot,一切正常。但是当我重新启动 Spring Boot 应用程序时,SkillCategory 中的 skillList为空。

如果有人有 Spring Data Neo4j 的经验,请帮助我缩小问题范围。

存储库代码:

@Repository
public interface SkillGraphRepository extends GraphRepository<Skill>{
List<SkillCategory> findAll();
}

我假设如果我获取技能类别,它也会自动急切加载以获取技能类别中的技能

我只是使用注入(inject) SkillCategoryRepository 的服务

skillCategoryService.create(new skillCategory("Category1"),Arrays.asList(new Skill("Skill 1"),new     SKill("Skill 2")));

最佳答案

启动之间的数据消失是由于使用嵌入式驱动程序启动 SDN 和临时数据存储造成的。

将驱动程序设置为:driver=org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver时,您还必须确保为 Neo4j 数据存储设置位置 URI=file :///var/tmp/neo4j.db 使数据在启动之间保持持久性,否则您的数据仅在应用程序运行时存在。

更多详情可以found here .

关于java - 重新启动 Spring Boot 应用程序时 Neo4j 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39761817/

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