私は仕事の週スケジュールを保存する必要があるアプリケーションを開発しています。 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]
私の質問の更新版を見つけてください。ありがとうございます – raiym
どのバージョンのmorphiaを使用していますか?それは1.3.0で私のために働く。 – evanchooly
しかし、1.3.0はまだリリースされていません。私は1.2.1を使用しています – raiym