java - Spring Data Neo4J 4.0.0: BeforeSaveEvent not firing? -
i'm trying capture beforesaveevent when setting neo4j in spring, can call method beforesave()
on class being saved. unfortunately, seems not being registered listener non of print statements being executed.
ideas appreciated.
@configuration @enableneo4jrepositories(basepackages = "com.noxgroup.nitro") @enabletransactionmanagement public class nitroneo4jconfiguration extends neo4jconfiguration { @bean public neo4jserver neo4jserver () { system.setproperty("username", "neo4j"); system.setproperty("password", "*************"); return new remoteserver("http://localhost:7474"); } @bean public sessionfactory getsessionfactory() { return new sessionfactory("com.noxgroup.nitro.domain"); } @bean applicationlistener<beforesaveevent> beforesaveeventapplicationlistener() { return new applicationlistener<beforesaveevent>() { @override public void onapplicationevent(beforesaveevent event) { system.out.println("listening event"); object entity = event.getentity(); if (entity instanceof nitronode) { ((nitronode)entity).beforesave(); } else { system.out.println("not picking up"); } } }; } }
these events fired neo4jtemplate (see http://docs.spring.io/spring-data/neo4j/docs/4.0.0.m1/reference/html/#_data_manipulation_events_formerly_lifecycle_events), that's you'll have use trigger save.
in configuration nitroneo4jconfiguration
include
@bean public neo4joperations getneo4jtemplate() throws exception { return new neo4jtemplate(getsession()); }
and in application,
@autowired private neo4joperations neo4jtemplate;
which used save
neo4jtemplate.save(person);
Comments
Post a Comment