У меня есть две сущности:
@NodeEntity
public class User {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
@Relationship(type = "IN")
private Department department;
}
@NodeEntity
public class Department {
@Id
@GeneratedValue
private Long id;
private String name;
}
Мне нужна логика для поиска firstName, lastName и id отдела.
Я посмотрел на подход к хранилищу и не могу найти решение, потому что мой запрос динамический (в поисковом запросе может быть 0 или 3 параметра).
Какое решение лучше для такой задачи? Теперь мне удалось сделать это с помощью ручного построения запросов и объекта Session, например:
StringBuilder builder = new StringBuilder("MATCH (user:User)-[:IN]->(department:Department) WHERE ");
if (departmentId != null) {
builder.append(String.format("ID(department) = %s", departmentId));
builder.append(" AND ");
}
...
List<User> userList = Lists.newArrayList(session.query(User.class,builder.toString(), Collections.emptyMap()));
Но это выглядит ужасно, и я хочу найти лучшее решение.
Спасибо!