2015-11-15 2 views

Répondre

2

Ceci n'est pas pris en charge dans la version actuelle, mais il figure dans la feuille de route.

+0

Juste curieux, y a-t-il eu une mise à jour? :) –

+2

Oui pris en charge dans OGM 2.0.5 http://neo4j.com/docs/ogm-manual/current/tutorial/#runtime-managed-labels – Luanne

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); 
    }