У меня проблемы с получением neo4j RelationshipEntity с помощью Spring Boot.Я использую spring-boot-starter-data-neo4j (2.1.0.RELEASE), а образ докера neo4j с тегом 3.4.9.
У меня есть простая NodeEntity, которая содержит коллекцию для RelationshipEntity:
@NodeEntity
public class Book {
@Id
@GeneratedValue
private Long id;
private String name;
public Book() {}
public Book(String name) {
this.name = name;
}
@Relationship(type = "PURCHASED_WITH", direction = "OUTGOING")
private Set<BookPurchase> purchases = new HashSet<>();
// getters and setters follow
}
У меня есть другая NodeEntity, которая также содержит коллекцию для сущности отношения:
@NodeEntity
public class CreditCard {
@Id
@GeneratedValue
private Long id;
private String number;
@DateString(value = "yyyy-MM-dd")
private Date expiryDate;
public CreditCard() {}
public CreditCard(String number, Date expiryDate) {
this.number = number;
this.expiryDate = expiryDate;
}
@Relationship(type = "PURCHASED_WITH", direction = "INCOMING")
private Set<BookPurchase> purchases = new HashSet<BookPurchase>();
// getters and setters follow
}
У меня есть RelationshipEntity, который добавляет ссылки на оба класса NodeEntity в конструкторе:
@RelationshipEntity(type = "PURCHASED_WITH")
public class BookPurchase {
@Id
@GeneratedValue
private long id;
@DateString("yyyy-MM-dd")
Date purchaseDate;
@StartNode
private Book book;
@EndNode
private CreditCard card;
public BookPurchase(){}
public BookPurchase(CreditCard card, Book book, Date purchaseDate) {
this.card = card;
this.book = book;
this.purchaseDate = purchaseDate;
this.card.getPurchases().add(this);
this.book.getPurchases().add(this);
}
// getters and setters follow
}
И, наконец, у меня есть контроллер Spring, связывающий все вместе:
@RestController
public class ExamplesController {
@Autowired
CreditCardRepository creditCardRepository;
@PostMapping(value="/purchases")
public String createPurchases() {
CreditCard card = new CreditCard("11111", new GregorianCalendar(2018, Calendar.FEBRUARY, 12).getTime());
Book book1 = new Book("of mice and men");
BookPurchase purchase1 = new BookPurchase(card,book1,new GregorianCalendar(2018, Calendar.MARCH, 15).getTime());
creditCardRepository.save(card);
return "Successfully created entities";
}
}
Всякий раз, когда япопробуйте curl -X POST http://localhost:8080/purchases
, я просто вижу следующее в браузере neo4j - RelationshipEntity не сохраняется, только узлы.
Может ли кто-нибудь помочь?
![enter image description here](https://i.stack.imgur.com/hpkBD.png)