2016-08-06 1 views
1

私は仕事の週スケジュールを保存する必要があるアプリケーションを開発しています。 workScheduleは7日間(配列)で構成され、各日は配列を構成します。この配列は、深夜からstartTimeとendTimeを格納する別の配列です。このjsonのmorphiaモデルを構築するにはどうすればいいですか?

私はInteger[][][] workSchedule

List<List<List<Integer>>> workSchedule

List<List<Integer[]>> workSchedule

と試みたが、何も働きました。一般的にはBasicBSONList can only work with numeric keys

と言っています。してください、任意の提案。

更新されました。

私のモデルは以下のmongodbです。

{ 
    "_id": { 
    "$oid": "579dfa208f9c311d327e478a" 
    }, 
    "status": "approved", 
    "ratingMinus": 0, 
    "ratingPlus": 0, 
    "lat": 55.767166134693, 
    "lng": 37.59573578997, 
    "address": "Большая Садовая улица, дом 16, сооружение 1", 
    "type": "public", 
    "price": 0, 
    "isFree": true, 
    "workSchedule": [ 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ], 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ], 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ], 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ], 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ], 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ], 
    [ 
     [ 
     28800, 
     72000 
     ] 
    ] 
    ], 
    "updatedAt": { 
    "$date": "2016-07-31T13:16:16.454Z" 
    }, 
    "createdAt": { 
    "$date": "2016-07-31T13:16:16.454Z" 
    }, 
    "__v": 0, 
    "location": [ 
    37.59573578997, 
    55.767166134693 
    ] 
} 

そして、ここでJavaプロパティ:

@Id 
private ObjectId id; 
private String status; 
private int ratingMinus; 
private int ratingPlus; 
private String address; 
@Reference 
private WcUser createdBy; 
@Reference 
private WcUser updatedBy; 
private Date createdAt; 
private Date updatedAt; 
private String routeDetails; 
private String type; 
private List<List<List<Integer>>> workSchedule; 
private boolean isFree; 
private int price; 
@Indexed(IndexDirection.GEO2D) 
private Double[] location; 

そして、私は次のようにモンゴからデータを取得しよう:

List<WcInstance> wcs = mongoConnectionManager 
     .getDatastore() 
     .find(WcInstance.class) 
     .field("location") 
     .near(longitude, latitude, 3/111.12) 
     .limit(100) 
     .asList(); 

そして、それは私がworkScheduleプロパティをコメントアウトした場合に動作しませんそうでない場合。

エラー:

java.lang.RuntimeException: java.lang.IllegalArgumentException: BasicBSONList can only work with numeric keys, not: [size]

答えて

0

List<List<List<Integer>>> workScheduleは動作するはずです。実際のモデルクラスとその使用方法を投稿してください。おそらくそこにいくつかのニュアンスがあります。

+0

私の質問の更新版を見つけてください。ありがとうございます – raiym

+0

どのバージョンのmorphiaを使用していますか?それは1.3.0で私のために働く。 – evanchooly

+0

しかし、1.3.0はまだリリースされていません。私は1.2.1を使用しています – raiym

関連する問題