2016-04-14 2 views
0

je l'NodeEntity suivante:NodeEntity persistent wont

@NodeEntity(label = "Book") 
public class Book{ 
    private Long id; 
    private String content; 

    @Relationship(direction = Relationship.OUTGOING, type="WRITTEN_BY") 
    private User author; 
} 

User est

@NodeEntity(label = "User) 
public class User{ 
    private Long id; 
    private String username; 
} 

et BookRepository

@Repository 
public interface BookRepository extends GraphRepository<Book> { 
} 

J'ai construire simple Rest-contrôleur pour stocker un Book dans la base de données.

@Controller 
@ResponseBody 
@RequestMapping(path = "/books", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
@Transactional 
public class BookController { 

    @Autowired 
    private BookRepository bookRepo; 

    @RequestMapping(method = RequestMethod.POST) 
    public Book createBook(@RequestBody Book book) { 
    return bookRepo.save(book); 
    } 

Quand je maintenant POST un livre JSON

{ 
    "content":"Test content", 
    "author":{ 
    "username":"Test-Username" 
    } 
} 

au contrôleur, deux choses se passent qui me confonds: D'abord, l'auteur dans le livre-objet est nul, bien que les deux Book et les User ont leur constructeur par défaut. Secundly: Le livre ne s'obtient pas. Il n'y a pas d'erreur, je viens d'obtenir le même livre-objet retourné (avec l'auteur toujours null) mais toujours avec un identifiant nul. La requête MATCH n RETURN n sur le client neo4j ne donne rien non plus.

J'ai essayé d'enlever l'objet User du `Livre, pensant que la faute était là, mais j'ai toujours le même comportement. Qu'est-ce que je fais de mal?

Répondre

0

Parfois, parler d'un seul problème Résout ... J'ai oublié de mettre le paquet qui contenait le livre dans le

@Bean 
public SessionFactory getSessionFactory() { 
    return new SessionFactory(/*Package of Book should have been here*/); 
} 

dans le Application