0
這裏的(常規)類的一部分,在MongoDB中存儲一些數據:常規對象和原始的混亂
long save(Object data) {
def customerReference = getNextCustomerReference()
def map = ['customerReference': customerReference, 'data': data, 'created': new Date()]
BasicDBObject basicDBObject = new BasicDBObject(map)
collection.insert(basicDBObject)
customerReference
}
private long getNextCustomerReference() {
1234
}
即使我已經明確地說,我希望有一個原始的長,是什麼在數據庫最終是對象:
{ "_id" : ObjectId("52f3c0597d844b0fcee29013"), "customerReference" : NumberLong(1234), "data" : "original data", "created" : ISODate("2014-02-06T17:03:21.411Z") }
但是,如果我改變返回類型爲變形點焊私有方法出現這種情況:
{ "_id" : ObjectId("52f3c1477d84698725f50fe5"), "customerReference" : 1234, "data" : "data", "created" : ISODate("2014-02-06T17:07:19.055Z") }
這是我想要的行爲(存儲在數據庫中的一個原語)。
有人可以解釋這是因爲它的莫名其妙。當然,如果我按照自己的方式來定義類型,Groovy應該嘗試並尊重它?
如果你做'long customerReference = getNextCustomerReference()'會怎麼樣? –
作爲對象進入。更奇怪的是,如果我這樣做,並使方法def的返回類型,它將作爲一個對象。 – FinalFive
如果您跳過'BasicDBObject'並直接進入'collection.insert(map)',該怎麼辦?我認爲這是允許的 –