2015-09-14 33 views
0

MongoDB中多個嵌入式數據的要通過使用Morphia.I要插入數據這樣插入多個嵌入的MongoDB:插入由嗎啡

{「_id」:的ObjectId(「55f67a57128699b6e5eab719」),「類名」 :「com.emecpoc.entity.User」,「smeId」:「SME1」,「creator」:「[email protected]」,「dateOfUsage」 :「2015-06-29」, 「 UsageDetail「:[{」timeOfUsage「:」11:52:49.0「,」usageType「:」Storage Consumed「,」length「:」81326「}, {」timeOfUsage「:」12:12:55.0「,」 usageType「:」Storage Consumed「,」length「:」115593「}, {」timeOfUsage「:」12:12:55.0「,」usageType「:」Storage Consumed「,」length「:」5383663「}, {「timeOfUsage」:「11:52 :49.0" , 「usageType」: 「寄存消耗」, 「長度」: 「46310」}] }

豆類是這樣的:

@Entity("User") 
    public class User { 
     @Id 
     ObjectId id; 
     String smeId,creator,dateOfUsage; 
     Timestamp created; 
    @Embedded("UsageDetail") 
     //List<UsageDetail> usageDetail; 
     UsageDetail usageDetail; 
//getter and setter methods 
} 

這是嵌入式豆類:

public class UsageDetail { 
     private String timeOfUsage; 
     private String usageType; 
     private String length; 
    //getter and setter methods 
    } 

但我得到的結果是這樣的:

{ "_id" : ObjectId("55f67a57128699b6e5eab71c"), "className" : "com.emecpoc.entity.User", "smeId" : "SME1", "creator" : "[email protected]", "dateOfUsage" 
    : "2015-06-29", "UsageDetail" : { "timeOfUsage" : "11:52:49.0", "usageType" : "Storage Consumed", "length" : "46310" } } 

If I remove @Id from User bean then results 4 data entry like this: 
{ "_id" : ObjectId("55f67a57128699b6e5eab719"), "className" : "com.emecpoc.entity.User", "smeId" : "SME1", "creator" : "[email protected]", "dateOfUsage" 
: "2015-06-29", "UsageDetail" : { "timeOfUsage" : "11:52:49.0", "usageType" : "Storage Consumed", "length" : "81326" } } 

{ "_id" : ObjectId("55f67a57128699b6e5eab71a"), "className" : "com.emecpoc.entity.User", "smeId" : "SME1", "creator" : "[email protected]", "dateOfUsage" 
: "2015-06-29", "UsageDetail" : { "timeOfUsage" : "12:12:55.0", "usageType" : "Storage Consumed", "length" : "115593" } } 

{ "_id" : ObjectId("55f67a57128699b6e5eab71b"), "className" : "com.emecpoc.entity.User", "smeId" : "SME1", "creator" : "[email protected]", "dateOfUsage" 
: "2015-06-29", "UsageDetail" : { "timeOfUsage" : "12:12:55.0", "usageType" : "Storage Consumed", "length" : "5383663" } } 

{ "_id" : ObjectId("55f67a57128699b6e5eab71c"), "className" : "com.emecpoc.entity.User", "smeId" : "SME1", "creator" : "[email protected]", "dateOfUsage" 
: "2015-06-29", "UsageDetail" : { "timeOfUsage" : "11:52:49.0", "usageType" : "Storage Consumed", "length" : "46310" } } 

所以,請指導我如何將多個數據僅在嵌入式部分。

回答

1

再製作usageDetail a List,然後根據需要添加儘可能多的對UsageDetail的引用。通過從User中刪除ID並再次保存,您告訴驅動程序/ Morphia,這是一個全新的對象,需要保存,以便在用戶集合中包含多個文檔。