MappingException: Ungültige Pfadreferenz club.name! Auf Assoziationen kann nur direkt oder über ihre id-Eigenschaft verwJava

Java-Forum
Guest
 MappingException: Ungültige Pfadreferenz club.name! Auf Assoziationen kann nur direkt oder über ihre id-Eigenschaft verw

Post by Guest »

Ich verwende die Spring Data Mongodb-Bibliothek und weiß nicht, wie ich mit @Query ein Element in zwei mit @DBRef verknüpften Sammlungen finden kann, etwa so:

Benutzer:

Code: Select all

@Document
public class User {

@Id
@JsonSerialize(using=ObjectIdSerializer.class)
private ObjectId id;

@CreatedDate
private Date dateCreated = new Date();

@LastModifiedDate
private Date dateModified = new Date();

@NotEmpty
@Indexed
private String name;

@Language
private String lang;

@NotEmpty
@DBRef
private Club club;
...
Verein:

Code: Select all

@Document
public class Club {

@Id
@JsonSerialize(using=ObjectIdSerializer.class)
private ObjectId id;

@Indexed(unique = true)
private String name;

private Address address;
...
UserRepository:

Code: Select all

@Query("{\"$or\":"
+ "["
+ "{\"name\" : {\"$regex\" : ?0, \"$options\": \"i\"}}, "
+ "{\"club.name\" : {\"$regex\" : ?0, \"$options\": \"i\"}} "
+ "]"
+ "}")
public Page findAll(String query, Pageable pageable);
Fehler:


org.springframework.web.util.NestedServletException: Request Verarbeitung fehlgeschlagen; Verschachtelte Ausnahme ist org.springframework.data.mapping.model.MappingException: Ungültige Pfadreferenz club.name! Auf Assoziationen kann nur direkt oder über ihre ID-Eigenschaft verwiesen werden!
unter org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:980)
unter org.springframework.web.servlet.FrameworkServlet .doGet(FrameworkServlet.java:859)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
unter org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
unter org.springframework.test. web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
unter org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167)
unter org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)
unter org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:155)
unter it.stasbranger.rotarylive.controller.UserControllerTests.showUsersFilterTEST3(UserControllerTests.java:137)
bei sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
bei sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
bei java.lang.reflect.Method.invoke(Method.java:498)
bei org.junit.runners.model.FrameworkMethod$1 .runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
unter org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
unter org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
unter org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
unter org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
unter org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) unter com.lordofthejars.nosqlunit.core.AbstractNoSqlTestRule$1.evaluate(AbstractNoSqlTestRule.java:72)
unter org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) bei org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
unter org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:254)
unter org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
unter org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
unter org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
bei org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
bei org.junit.runners.ParentRunner .access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
unter org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
unter org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
unter org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
unter org.junit.rules.RunRules.evaluate(RunRules.java:20)
unter org.junit.runners.ParentRunner.run(ParentRunner.java:363)
unter org.springframework.test.context. junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
unter org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
unter org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java: 38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
unter org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
unter org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Verursacht durch: org.springframework.data.mapping.model.MappingException: Ungültige Pfadreferenz club.name! Auf Assoziationen kann nur direkt oder über ihre ID-Eigenschaft verwiesen werden!
unter org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.getPath(QueryMapper.java:853)
unter org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.(QueryMapper.java:729)
unter org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.(QueryMapper.java:706 )
at org.springframework.data.mongodb.core.convert.QueryMapper.createPropertyField(QueryMapper.java:216)
unter org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:122) bei org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:235)
unter org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:100) bei org.springframework.data.mongodb.core.MongoTemplate.count(MongoTemplate.java:724)
unter org.springframework.data.mongodb.repository.query.AbstractMongoQuery$PagedExecution.execute(AbstractMongoQuery.java:268) bei org.springframework.data.mongodb.repository.query.AbstractMongoQuery.execute(AbstractMongoQuery.java:106)
unter org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:462 )
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:440)
unter org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
bei org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:61)
unter org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
unter org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
unter org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
unter org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
unter com.sun.proxy.$Proxy132.findAll(Unknown Source)
unter it.stasbranger.rotarylive.service. UserServiceImpl.findAll(UserServiceImpl.java:71)
bei it.stasbranger.rotarylive.controller.UserController.showUsers(UserController.java:53)
bei sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
bei sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
bei java.lang.reflect.Method.invoke(Method.java:498)
bei org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
unter org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
unter org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
unter org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java :731)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
unter org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
unter org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
unter org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
... 42 weitere

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post