2017-07-04 15 views
0

jsonオブジェクトの配列をmongodbに挿入しようとしています。私は、これは私のJSONInvalidDataAccessApiUsageException:クラスcom.mongodb.BasicDBListの永続エンティティ情報が見つかりません

[ 
    { 
     "name" : "a", 
     "number" : "1" 
    }, 
    { 
     "name" : "c", 
     "number" : "3"  
    } 
] 

である私はお返しに何を得る私のオブジェクトSpring

@Document(collection = "Users") 
public class User { 
    private String name; 
    private String number; 
//constructors, getters, setters 
} 

マイ春コントローラ

@RestController 
public class UserController { 

    @RequestMapping(value="/postUser", method = RequestMethod.POST) 
    public void postUser(@RequestBody BasicDBList users){ 
    ApplicationContext ctx = 
     new AnnotationConfigApplicationContext(SpringMongoConfig.class); 
    MongoOperations mongoOperation = 
     (MongoOperations) ctx.getBean("mongoTemplate"); 
    mongoOperation.insert(users); 
    } 
} 

を使用して、POST要求に配列を渡します

{ 
    "timestamp": 1499161260902, 
    "status": 500, 
    "error": "Internal Server Error", 
    "exception": "org.springframework.dao.InvalidDataAccessApiUsageException", 
    "message": "No Persistent Entity information found for the class com.mongodb.BasicDBList", 
    "path": "/postUser" 
} 

私は

public void postUser(@RequestBody User users) 

を行い、単一のユーザーを挿入する場合は問題ありません。それはなぜ機能しないのですか?あなたは、パラメータの前に@RequestBodyを追加すると

答えて

0

HttpMessageConvertorは、指定した型にJSON文字列を変換しようとします - BasicDBList。 json文字列がBasicDBListと一致しない可能性があるため、変換に失敗しました。あなたはこれを使用できます:

public void postUser(@RequestBody List<User> users) 
+0

助けてください。新しいエラーは 'com.mongodb.BasicDBObjectはcom.mongodb.BasicDBList'にキャストできません。 – Evgenii

+0

修正。 'mongoOperation.insert(users)'を 'insertAll(users)'に変更しなければなりませんでした。今それは動作します。 – Evgenii

関連する問題