2015-12-17 34 views
0

我在我的新項目中使用了neo4j-2.3.1和spring-data-neo4j 4。我將這一切設置爲post(Spring Data Neo4j 4)。但是,我不能將任何數據存儲到數據庫中。 這裏是我的Neo4j配置:Spring Data Neo4j 4沒有存儲任何數據

@Configuration 
@EnableNeo4jRepositories("org.drexel.cas.repository") 
@EnableTransactionManagement 
@ComponentScan("org.drexel.cas") 
public class RootConfig extends Neo4jConfiguration { 
    @Override 
    public SessionFactory getSessionFactory() { 
     return new SessionFactory("org.drexel.cas.domain"); 
    } 
    @Bean 
    public Neo4jServer neo4jServer() { 
     return new RemoteServer("http://localhost:7474", "neo4j", "xxxxxx"); 
    } 
    @Override 
    @Bean 
    @Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS) 
    public Session getSession() throws Exception { 
     return super.getSession(); 
    } 
} 

這裏是REST API,它只是簡單地調用庫中存儲的對象:

@Autowired 
ProjectRepository repository; 

@RequestMapping(value = "project", method = POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) 
public ResponseEntity<Project> create(@RequestBody Map<String, Object> param) { 
    Project project = new Project(param); 
    repository.save(project); 
    return ResponseEntity.ok(project); 
} 

這裏是倉庫:

@Repository 
@Transactional 
public interface ProjectRepository extends GraphRepository<Project> { 

} 

這是項目類:

@NodeEntity 
public class Project { 
@GraphId 
private Long id; 
@Convert(MapJson.class) 
private Map<String, Object> attributes; 

public Project() { 
    this.attributes = new HashMap<>(); 
} 

public Project(Map<String, Object> params) { 
    id = System.currentTimeMillis(); 
    this.attributes = params; 
} 

public boolean equals(Object object) { 
    if (object == null) 
     return false; 
    if (!(object instanceof Project)) 
     return false; 
    Project other = (Project) object; 
    if (!other.getId().equals(this.id)) 
     return false; 
    return true; 
} 

public int hashCode() { 
    return this.id.hashCode(); 
} 

} 

這裏是轉換器類:

public class MapJson implements AttributeConverter<Map<String, Object>, String> { 

    @Override 
    public String toGraphProperty(Map<String, Object> value) { 
     Gson gson = new Gson(); 
       Type type = new TokenType<Map<String, Object>>(){}.getType(); 
       return gson.toJson(value, type); 
      } 

      @Override 
      public Map<String, Object> toEntityAttribute(String value) { 
       Gson gson = new Gson(); 
       Type type = new TokenType<Map<String, Object>>(){}.getType(); 
       return gson.fromJson(value, type); 
      } 

     } 

後,我做出捲曲後,一切正常,並沒有任何異常和錯誤。然後我去localhost:7474獲取所有數據,我什麼也沒得到。 這是日誌,我做了一個捲曲貼和捲曲得到。沒有任何異常

Dec 18, 2015 12:33:10 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:dummy' did not find a matching property. 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Server version:  Apache Tomcat/8.0.29 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Server built:   Nov 20 2015 09:18:00 UTC 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Server number:   8.0.29.0 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: OS Name:    Mac OS X 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: OS Version:   10.11.2 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Architecture:   x86_64 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Java Home:    /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: JVM Version:   1.8.0_65-b17 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: JVM Vendor:   Oracle Corporation 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: CATALINA_BASE:   /Users/bondwong/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp10 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: CATALINA_HOME:   /Users/bondwong/apache-tomcat-8.0.29 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Command line argument: -Dcatalina.base=/Users/bondwong/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp10 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Command line argument: -Dcatalina.home=/Users/bondwong/apache-tomcat-8.0.29 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Command line argument: -Dwtp.deploy=/Users/bondwong/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp10/wtpwebapps 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Command line argument: -Djava.endorsed.dirs=/Users/bondwong/apache-tomcat-8.0.29/endorsed 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.VersionLoggerListener log 
    INFO: Command line argument: -Dfile.encoding=UTF-8 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent 
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/bondwong/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. 
    Dec 18, 2015 12:33:10 AM org.apache.coyote.AbstractProtocol init 
    INFO: Initializing ProtocolHandler ["http-nio-8080"] 
    Dec 18, 2015 12:33:10 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
    INFO: Using a shared selector for servlet write/read 
    Dec 18, 2015 12:33:10 AM org.apache.coyote.AbstractProtocol init 
    INFO: Initializing ProtocolHandler ["ajp-nio-8009"] 
    Dec 18, 2015 12:33:10 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
    INFO: Using a shared selector for servlet write/read 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.startup.Catalina load 
    INFO: Initialization processed in 866 ms 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.core.StandardService startInternal 
    INFO: Starting service Catalina 
    Dec 18, 2015 12:33:10 AM org.apache.catalina.core.StandardEngine startInternal 
    INFO: Starting Servlet Engine: Apache Tomcat/8.0.29 
    Dec 18, 2015 12:33:16 AM org.apache.jasper.servlet.TldScanner scanJars 
    INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
    Dec 18, 2015 12:33:16 AM org.apache.catalina.core.ApplicationContext log 
    INFO: Spring WebApplicationInitializers detected on classpath: [[email protected]] 
    Dec 18, 2015 12:33:16 AM org.apache.catalina.core.ApplicationContext log 
    INFO: Initializing Spring root WebApplicationContext 
    00:33:16.781 [localhost-startStop-1] INFO o.s.web.context.ContextLoader - Root WebApplicationContext: initialization started 
    00:33:16.884 [localhost-startStop-1] INFO o.s.w.c.s.AnnotationConfigWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Fri Dec 18 00:33:16 EST 2015]; root of context hierarchy 
    00:33:16.972 [localhost-startStop-1] INFO o.s.w.c.s.AnnotationConfigWebApplicationContext - Registering annotated classes: [class org.drexel.cas.RootConfig] 
    00:33:17.435 [localhost-startStop-1] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'rootConfig' of type [class org.drexel.cas.RootConfig$$EnhancerBySpringCGLIB$$93dd11f8] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
    00:33:17.439 [localhost-startStop-1] INFO o.s.d.n.config.Neo4jConfiguration - Initialising PersistenceExceptionTranslationPostProcessor 
    00:33:17.534 [localhost-startStop-1] INFO o.s.d.n.config.Neo4jConfiguration - Initialising Neo4jSession 
    00:33:18.031 [localhost-startStop-1] INFO o.n.o.m.info.ClassFileProcessor - Starting Post-processing phase 
    00:33:18.031 [localhost-startStop-1] INFO o.n.o.m.info.ClassFileProcessor - Building annotation class map 
    00:33:18.032 [localhost-startStop-1] INFO o.n.o.m.info.ClassFileProcessor - Building interface class map for 2 classes 
    00:33:18.032 [localhost-startStop-1] INFO o.n.o.m.info.ClassFileProcessor - Registering default type converters... 
    00:33:18.032 [localhost-startStop-1] INFO o.n.o.m.info.ClassFileProcessor - Post-processing complete 
    00:33:18.032 [localhost-startStop-1] INFO o.n.o.m.info.ClassFileProcessor - 2 classes loaded in 15 milliseconds 
    00:33:18.215 [localhost-startStop-1] INFO o.s.d.n.mapping.Neo4jMappingContext - Neo4jMappingContext initialisation completed 
    00:33:18.359 [localhost-startStop-1] INFO o.s.d.n.config.Neo4jConfiguration - Initialising PersistenceExceptionTranslator 
    00:33:18.364 [localhost-startStop-1] INFO o.s.d.n.config.Neo4jConfiguration - Initialising PersistenceExceptionTranslationInterceptor 
    00:33:18.368 [localhost-startStop-1] INFO o.s.d.n.config.Neo4jConfiguration - Initialising Neo4jTransactionManager 
    00:33:18.377 [localhost-startStop-1] INFO o.s.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 1592 ms 
    Dec 18, 2015 12:33:18 AM org.apache.catalina.core.ApplicationContext log 
    INFO: Initializing Spring FrameworkServlet 'dispatcher' 
    00:33:18.404 [localhost-startStop-1] INFO o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcher': initialization started 
    00:33:18.407 [localhost-startStop-1] INFO o.s.w.c.s.AnnotationConfigWebApplicationContext - Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Dec 18 00:33:18 EST 2015]; parent: Root WebApplicationContext 
    00:33:18.409 [localhost-startStop-1] INFO o.s.w.c.s.AnnotationConfigWebApplicationContext - Registering annotated classes: [class org.drexel.cas.WebConfig] 
    00:33:18.789 [localhost-startStop-1] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/dummy/{id:\d+}]}" onto public org.springframework.http.ResponseEntity<org.drexel.cas.domain.Dummy> org.drexel.cas.web.DummyService.get(java.lang.Long) 
    00:33:18.790 [localhost-startStop-1] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/dummy],methods=[POST],consumes=[application/json],produces=[application/json]}" onto public org.springframework.http.ResponseEntity<org.drexel.cas.domain.Dummy> org.drexel.cas.web.DummyService.create(java.util.Map<java.lang.String, java.lang.Object>) 
    00:33:18.814 [localhost-startStop-1] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler] 
    00:33:18.851 [localhost-startStop-1] INFO o.s.w.s.m.m.a.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Dec 18 00:33:18 EST 2015]; parent: Root WebApplicationContext 
    00:33:18.938 [localhost-startStop-1] INFO o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcher': initialization completed in 534 ms 
    Dec 18, 2015 12:33:18 AM org.apache.coyote.AbstractProtocol start 
    INFO: Starting ProtocolHandler ["http-nio-8080"] 
    Dec 18, 2015 12:33:18 AM org.apache.coyote.AbstractProtocol start 
    INFO: Starting ProtocolHandler ["ajp-nio-8009"] 
    Dec 18, 2015 12:33:18 AM org.apache.catalina.startup.Catalina start 
    INFO: Server startup in 8483 ms 
    create... 
    get... 

enter image description here enter image description here 沒有例外。 有誰知道如何解決它?

+0

請提供更多信息。你的項目實體是什麼樣的,SDN是如何配置的?日誌中的任何例外情況? – Luanne

+0

@Luanne我添加了你問的信息。日誌中沒有任何例外。 –

+0

你的轉換器是什麼樣的? – Luanne

回答

1

儘量不要自己設置@GraphId屬性的值。

public Project(Map<String, Object> params) { 
    //id = System.currentTimeMillis(); 
    this.attributes = params; 
} 
0

轉換器本身和引線不它說轉換從ProjectString,而不是MapString

目前已經開放了泛型問題中的錯誤,所以到那是固定的,你必須忽略它們,並使用來代替:

@Convert(MapJson.class) 
private Map attributes; 

與屬性轉換

public class MapJson implements AttributeConverter<Map,String> { 

    @Override 
    public String toGraphProperty(Map value) { 
     //do something 
    } 

    @Override 
    public Map<String, Object> toEntityAttribute(String value) { 
     //do something 
    } 
} 
+0

即時通訊對不起,這是一個錯字錯誤,我沒有使用AttributeConverter ,String>。如果我有泛型問題,則不能編譯代碼。但是,我沒有得到任何例外 –

+0

當我使用它時,絕對有一個運行時異常。 – Luanne

相關問題