0

I develop an event meeting application using Spring and Neo4j database.

This is my model:

Member can Create Event and other member can register and check in event when member who is organizer has start check in event.

Event models

This is my entities in java code

Event Entity

@Node
@NoArgsConstructor
@Getter
@Setter
public class Event {
    @Id
    @GeneratedValue(UUIDStringGenerator.class)
    private String id;

    private String name;

    private String description;

    private String type;

    private Long startDate;

    private Long endDate;

    private String location;

    private String coverImageUrl;

    private List<String> postImageUrls;

    private Integer numberOfPeople;

    private String status;

    private String checkInCode;

    @LastModifiedDate
    private Long updateAt;

    @CreatedDate
    private Long createAt;

    @Version
    private Long version;

    @Relationship(type = "TAG", direction = Relationship.Direction.OUTGOING)
    private List<Tag> tags;

    @Relationship(type = "CREATE", direction = Relationship.Direction.INCOMING)
    private Member organizer;


    @Relationship(type = "FEEDBACK", direction = Relationship.Direction.INCOMING)
    private Set<FeedbackFromRelation> feedbackEvent;

    @Relationship(type = "CHECK_IN",direction = Relationship.Direction.INCOMING)
    private Set<CheckInEventFromRelation> checkInMember;

    @Relationship(type = "REGISTER", direction = Relationship.Direction.INCOMING)
    private Set<RegisterEventFromRelation> registerMember;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Event event = (Event) o;

        return id.equals(event.id);
    }

    @Override
    public int hashCode() {
        return id.hashCode();
    }
}


Member Entity


@Node
@NoArgsConstructor
@Getter
@Setter
public class Member {
    @Id
    private String id;

    private String username;

    private String firstname;

    private String lastname;

    private String profileUrl;

    private String deviceId;

    private String email;

    @LastModifiedDate
    private Long updateAt;

    @CreatedDate
    private Long createAt;

    @Version
    private Long version;

    @Relationship(value = "CREATE",direction = Relationship.Direction.OUTGOING)
    private Set<Event> createdEvent;

    @Relationship(type = "FOLLOW", direction = Relationship.Direction.OUTGOING)
    private Set<Member> follower;

    @Relationship(type = "REGISTER", direction = Relationship.Direction.OUTGOING)
    private Set<RegisterEventRelation> registerEvent;

    @Relationship(type = "CHECK_IN",direction = Relationship.Direction.OUTGOING)
    private Set<CheckInEventRelation> checkInEvent;

    @Relationship(type = "FEEDBACK",direction = Relationship.Direction.OUTGOING)
    private Set<FeedbackRelation> feedbackEvent;

    public Member(String id, String firstname, String lastname, String image, String email,String deviceId) {
        this.id = id;
        this.firstname = firstname;
        this.lastname = lastname;
        this.profileUrl = image;
        this.email = email;
        this.deviceId = deviceId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Member member = (Member) o;

        return id.equals(member.id);
    }

    @Override
    public int hashCode() {
        return id.hashCode();
    }
}

This is my service I try to execute in that time. It throw the exception when I try to save that event.


    public String generateCode(String memberId, String eventId) throws MemberNotFoundException, EventNotFoundException, NotHavePermissionException {
        Member owner = memberService.getMember(memberId);
        Event event = getEventById(eventId);
        if (event.getOrganizer().getId().equals(owner.getId())) {
            String code = randomCode();
            event.setCheckInCode(code);
            save(event);
            log.info("generate code {} for eventId {} ", code, eventId);
            return code;
        }
        throw new NotHavePermissionException(String.format("MemberId %s is not owner", memberId));
    }

And this is sample data in database

sample-data

I face up with this exception. I have no idea what exception that is. I just try to save entity. Could you give me advice about this exception ?

ps. Is it related to when i get event, it load too many entity ?

2022-07-21 23:58:08.582  WARN 10601 --- [nio-8080-exec-2] .n.c.Neo4jPersistenceExceptionTranslator : Don't know how to translate exception of type class org.neo4j.driver.exceptions.NoSuchRecordException
2022-07-21 23:58:08.723 ERROR 10601 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[.[dispatcherServlet]      : Servlet.service() for servlet [dispatcherServlet] in context with path [/eventService] threw exception [Request processing failed; nested exception is org.neo4j.driver.exceptions.NoSuchRecordException: Expected a result with a single record, but this result contains at least one more. Ensure your query returns only one record.] with root cause

org.neo4j.driver.exceptions.NoSuchRecordException: Expected a result with a single record, but this result contains at least one more. Ensure your query returns only one record.
    at org.neo4j.driver.internal.util.Futures.blockingGet(Futures.java:144) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
    at org.neo4j.driver.internal.InternalResult.blockingGet(InternalResult.java:122) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
    at org.neo4j.driver.internal.InternalResult.single(InternalResult.java:75) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
    at org.springframework.data.neo4j.core.DefaultNeo4jClient$DefaultRecordFetchSpec.one(DefaultNeo4jClient.java:455) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.saveRelatedNode(Neo4jTemplate.java:882) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:788) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.lambda$processNestedRelations$25(Neo4jTemplate.java:842) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithAssociations(BasicPersistentEntity.java:387) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processNestedRelations(Neo4jTemplate.java:697) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.processRelations(Neo4jTemplate.java:682) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.saveImpl(Neo4jTemplate.java:421) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.core.Neo4jTemplate.save(Neo4jTemplate.java:343) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at org.springframework.data.neo4j.repository.support.SimpleNeo4jRepository.save(SimpleNeo4jRepository.java:119) ~[spring-data-neo4j-6.2.3.jar:6.2.3]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:289) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:529) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:285) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:639) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:163) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:138) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80) ~[spring-data-commons-2.6.3.jar:2.6.3]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.18.jar:5.3.18]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.18.jar:5.3.18]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.18.jar:5.3.18]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.18.jar:5.3.18]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.18.jar:5.3.18]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.18.jar:5.3.18]
    at com.sun.proxy.$Proxy119.save(Unknown Source) ~[na:na]
    at com.eventloop.eventservice.services.EventService.save(EventService.java:59) ~[classes/:na]
    at com.eventloop.eventservice.services.EventService.generateCode(EventService.java:228) ~[classes/:na]
    at com.eventloop.eventservice.services.EventService$$FastClassBySpringCGLIB$$88140695.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.18.jar:5.3.18]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) ~[spring-aop-5.3.18.jar:5.3.18]
    at com.eventloop.eventservice.services.EventService$$EnhancerBySpringCGLIB$$a417af2.generateCode(<generated>) ~[classes/:na]
    at com.eventloop.eventservice.controllers.EventController.generateCode(EventController.java:95) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.18.jar:5.3.18]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) ~[tomcat-embed-core-9.0.60.jar:4.0.FR]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.60.jar:4.0.FR]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.18.jar:5.3.18]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.18.jar:5.3.18]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.18.jar:5.3.18]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.18.jar:5.3.18]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.6.6.jar:2.6.6]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.18.jar:5.3.18]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.18.jar:5.3.18]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.18.jar:5.3.18]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
    Suppressed: org.neo4j.driver.internal.util.ErrorUtil$InternalExceptionCause: null
        at org.neo4j.driver.internal.cursor.AsyncResultCursorImpl.lambda$null$0(AsyncResultCursorImpl.java:85) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
        at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2094) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:143) ~[na:na]
        at org.neo4j.driver.internal.cursor.AsyncResultCursorImpl.lambda$singleAsync$1(AsyncResultCursorImpl.java:81) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
        at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:143) ~[na:na]
        at org.neo4j.driver.internal.cursor.AsyncResultCursorImpl.singleAsync(AsyncResultCursorImpl.java:74) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
        at org.neo4j.driver.internal.cursor.DisposableAsyncResultCursor.lambda$singleAsync$2(DisposableAsyncResultCursor.java:72) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
        at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235) ~[na:na]
        at org.neo4j.driver.internal.cursor.DisposableAsyncResultCursor.singleAsync(DisposableAsyncResultCursor.java:72) ~[neo4j-java-driver-4.4.5.jar:4.4.5-27f38b532a360cf35485df12ced05e31409afcd3]
        ... 139 common frames omitted


Update

I add Save method that actually it do

    public Event save(Event event) {
        eventRepository.save(event);
        log.info("save event : {} ", event.getId());
        return event;
    }
wavemoroc
  • 11
  • 1
  • 4
  • did you got the solution.I am also facing same issue – rafeek Nov 14 '22 at 12:12
  • @rafeek I resolved this problems. This cause by models id is not unique key (I use name of tag model to be unique) so i let spring to generate uuid for each node follow my issues https://github.com/spring-projects/spring-data-neo4j/issues/2573 – wavemoroc Nov 15 '22 at 13:09

2 Answers2

0

The error says,

org.neo4j.driver.exceptions.NoSuchRecordException: Expected a result with a single record, but this result contains at least one more. Ensure your query returns only one record.

This implies your query returns more than one record as the return value, but it is expected to return only one record. Try executing the query directly on Neo4j Browser, to see what is the return value from the query.

Charchit Kapoor
  • 8,934
  • 2
  • 8
  • 24
  • I'm not sure which cypher query do it for me. I use Spring Data Neo4j to save entity I have try with this query it return only one record `match (e:Event{id:'5d5864c4-36d3-4d12-a36a-599d456d98b1'}) set e.checkInCode = '456789' return e ` – wavemoroc Jul 22 '22 at 05:40
  • In the stack trace the query method name will be there – Charchit Kapoor Jul 22 '22 at 05:47
  • I only found the exception has started when i execute `eventRepository.save(event)`. Do you have another method to make query log from spring ? I have try `logging.level.org.neo4j.ogm.drivers.bolt.request.BoltRequest=DEBUG ` there noting print out – wavemoroc Jul 22 '22 at 05:58
  • I have try to reduce relation between event node it not throw the exception but it take long time to save entity [Before reduce relation](https://imgur.com/a/FQA8XtN) [After reduce relation](https://imgur.com/a/1xaqeJF) – wavemoroc Jul 22 '22 at 06:16
0

To print the Logs, use;

logging.level.org.springframework.data.neo4j=DEBUG

For unique IDs;

   @Id
   @GeneratedValue(generatorClass = UUIDStringGenerator.class)
   private long id;
Cugomastik
  • 911
  • 13
  • 22