Lorsque je crée un noeud, je souhaite ajouter plusieurs étiquettes, connues au moment de l'exécution, au noeud. Est-ce possible dans le néo4j-ogm ou le spring-data-neo4j?Comment ajouter des étiquettes dynamiquement aux nœuds dans Neo4j à partir de neo4j-ogm ou spring-data-neo4j?
0
A
Répondre
2
Ceci n'est pas pris en charge dans la version actuelle, mais il figure dans la feuille de route.
0
Ajouter quelques dépendances
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-core</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
Créer un Enitity avec lombok accesseurs
@NodeEntity
@Data
public class Content{
@Id
@GeneratedValue
private Long id; //Internal Neo4j Identifier. DONT TOUCH
// Your Bns Logic identifier
private Long myId
@Properties
private Map<String, String> properties = new HashMap<>();
@Labels
private List<String> labels = new ArrayList<>();
}
Un référentiel pour votre entité
public interface ContentRepository extends Neo4jRepository<Content, Long> {
}
Un contrôleur simple d'ajouter vos étiquettes et propriétés dans le Noeud
@RestController
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public class ContentController {
@Autowired
ContentRepository contentRepository;
@ApiOperation(value = "Create a Node", notes = "create a node", response = String.class)
@ApiResponses({
@ApiResponse(code = 201, message = "Success", response = String.class)
})
@PostMapping("/api/content")
public ResponseEntity<MyDTO> createNode(@RequestBody MyDTO requestWrapper) {
//Create Database Entity from DTO
Content content = new Content();
//Add Labels
content.getLabels().addAll(requestWrapper.getLabelList());
//Add properties
requestWrapper.getHmap().forEach((k,v)->content.getProperties().put(k,v));
try {
contentRepository.save(content);
requestWrapper.setId(content.getId());
} catch (Exception e){
//e.printStackTrace();
}
return new ResponseEntity<MyDTO>(requestWrapper, HttpStatus.CREATED);
}
Juste curieux, y a-t-il eu une mise à jour? :) –
Oui pris en charge dans OGM 2.0.5 http://neo4j.com/docs/ogm-manual/current/tutorial/#runtime-managed-labels – Luanne