Я пытаюсь найти пример или демонстрацию «Как интегрировать OGM с неуправляемым расширением», но не могу найти хорошего примера.
Я пытался использовать restapi как неуправляемое расширение, и по отдельности оно работает нормально, но OGM имеет возможность сопоставления смарт-объектов и может быть достигнуто с помощью Session
, а Session
получается из SessionFactory
.
private final static SessionFactory sessionFactory = new SessionFactory("some.domain");
sessionFactory .openSession();
Теперь, как можно использовать OGM для интеграции с неуправляемым расширением?
Может кто-нибудь, пожалуйста, помогите мне для того же.
Изменить 1
Пожалуйста, проверьте скриншот ниже
ИЗМЕНИТЬ 2
Ниже приведен код, который мы написали
import org.neo4j.ogm.drivers.embedded.extension.OgmPluginInitializer;
public class MyApplicationPluginInitializer extends OgmPluginInitializer {
public MyApplicationPluginInitializer(String packages) {
super(packages);
}
}
Топология классаExtController
@Path("/")
public class TopologyExtController {
@javax.ws.rs.core.Context
public org.neo4j.ogm.session.Session session;
public TopologyExtController( ) {
}
@POST
@Path("/uiv/topology")
public Response getTopology(TopologyDescription topology, @javax.ws.rs.core.Context HttpHeaders headers) {
try{
ObjectMapper mapper = new ObjectMapper();
Map convertValue = mapper.convertValue(topology, Map.class);
Map<String, Object> map = new HashMap<>();
map.put("topology", convertValue);
//OGM session used execute the procedure and return the mapped result to end user.
Result query = session.query("call uiv.traversal($topology)",map);
Iterator<Map<String, Object>> iterator = query.iterator();
if (iterator.hasNext()) {
Map<String, Object> next = iterator.next();
Object object = next.get("rootNodes");
return Response.ok(object).status(200).build();
}
}catch (Exception e)
{
e.printStackTrace();
}
return Response.ok("Something went wrong").status(400).build();
}
}
Запись META-INF \META-INF\services\org.neo4j.server.plugins.PluginLifecycle
- framework.traversal.ext.config.MyApplicationPluginInitializer
Но ошибка, которую мы получаем
Это вообще невозможно. Neo4j-OGM абстрагирует все транспортные режимы (Bolt, HTTP, встроенный) с помощью Cypher.