2017-04-07 54 views
0

我正尝试将当前用户保存到指针< _User>列中的某个类中。这是一个特定于库的问题(https://github.com/thiagolocatelli/parse4j/blob/master/src/main/java/org/parse4j/ParseUser.java)。我只是想知道其他人是否也有过类似的问题。无法将当前用户保存为用户指针列中的对象(Parse4J)

ParseUser currentUser = ParseUser.currentUser; 

ParseObject sentRequest = new ParseObject(ParseConstantsUtil.CLASS_REQUEST); 
sentRequest.put("author", currentUser); 
try { 
sentRequest.save(); 
} catch (org.parse4j.ParseException e) { 
e.printStackTrace(); 
} 

的pom.xml:我使用的是最新的快照生成作为我Parse4J依赖。

<dependency> 
     <groupId>com.github.thiagolocatelli</groupId> 
     <artifactId>parse4j</artifactId> 
     <version>1.5-SNAPSHOT</version> 
    </dependency> 

例外:

ParseException [code=111, error=schema mismatch for Request.author; expected Pointer<_User> but got Pointer<users>] 
    at org.parse4j.command.ParseResponse.getParseError(ParseResponse.java:122) 
    at org.parse4j.command.ParseResponse.getException(ParseResponse.java:78) 
    at org.parse4j.ParseObject.save(ParseObject.java:486) 
    at com.test.automation.controller.RequestController.createRequestObject(RequestController.java:119) 
    at com.test.automation.controller.RequestController.saveRequest(RequestController.java:89) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 

什么错吗?

回答

0

它适用于查询当前用户时,但我认为这绝对是一个不必要的额外呼叫。我很想知道为什么我的第一次尝试失败...

 ParseQuery<ParseObject> userQuery = ParseQuery.getQuery("_User"); 
     userQuery.whereEqualTo("objectId", currentUser.getObjectId()); 
     try { 
      List<ParseObject> userList = userQuery.find(); 
      for (ParseObject author : userList) { 

       sentRequest.put("author", author); 
       try { 
        sentRequest.save(); 
       } catch (org.parse4j.ParseException e) { 
        e.printStackTrace(); 
       } 

      } 
     } catch (org.parse4j.ParseException e) { 
      e.printStackTrace(); 
     }