我的项目中有些奇怪的东西,我看不出它是否可能出错。与spring-data-neo4j的关系破解4.0.0
我使用Spring与spring-data-neo4j(v4.0.0)。
我的控制器中的这段代码破坏了关系。
@RequestMapping("/initialize")
public Object initialize() {
Organization orga = new Organization();
orga.setName("WEAVERS");
this.organizationRepository.save(orga);
User user = new User();
user.setEmail("[email protected]");
user.setFirst_name("Thierno");
user.setLast_name("Rignoux");
user.setLogin("317");
user.setOrganization(orga);
this.userRepository.save(user);
User user2 = new User();
user2.setEmail("[email protected]");
user2.setFirst_name("Eléonore");
user2.setLast_name("Klein");
user2.setLogin("nessie");
user2.setOrganization(orga);
this.userRepository.save(user2);
Project project = new Project();
project.setName("PROJET 1");
project.setOrganization(orga);
project.setUser(user);
this.projectRepository.save(project);
Project project2 = new Project();
project2.setName("PROJET 2");
project2.setOrganization(orga);
project2.setUser(user2);
this.projectRepository.save(project2);
return orga;
}
正如你可以在这个图中看到:
当我创建USER2组织USER1之间的关系已经被切断。
破坏的关系是我在应用程序中随处可见的东西...我不明白!
Neo4j的配置
@EnableTransactionManagement
@Import(RepositoryRestMvcConfiguration.class)
@EnableScheduling
@EnableAutoConfiguration
@ComponentScan(basePackages = {"fr.weavers.loom"})
@Configuration
@EnableNeo4jRepositories(basePackages = "fr.weavers.loom.repositories")
public class LoomNeo4jConfiguration extends Neo4jConfiguration {
public static final String URL = System.getenv("NEO4J_URL") != null ? System.getenv("NEO4J_URL") : "http://localhost:7474";
@Override
public Neo4jServer neo4jServer() {
return new RemoteServer(URL,"neo4j","loomREST2016");
}
@Override
public SessionFactory getSessionFactory() {
return new SessionFactory("fr.weavers.loom.domain");
}
}
组织域:
public class Organization extends Node {
@GraphId
Long id;
String name;
@Relationship(type = "SET_UP", direction = Relationship.OUTGOING)
Set<SET_UP> projects;
@Relationship(type = "WORK_FOR", direction = Relationship.INCOMING)
Set<WORK_FOR> users;
[...]
WORK_FOR域:
public class WORK_FOR extends Relationship {
@GraphId
private Long relationshipId;
@StartNode
public User user;
@EndNode
public Organization organization;
public WORK_FOR() {
super();
}
}
用户域:
public class User extends Node {
@GraphId
Long id;
String login;
@JsonIgnore
String password;
String first_name;
String last_name;
String email;
@Relationship(type = "WORK_FOR")
WORK_FOR workFor;
我到处找,我无法找到任何帮助我...
谢谢
嗨,谢谢你的回应。 由于(用户) - [:WORK_FOR] - >(组织),我不应该把OUTGOING放在用户和INCOMING的组织中吗? – 317
对不起,是的。我误解你的例子。问题可能是由于会话生存期。请看我的其他答案。 – Vince