2017-11-22 2 views
0

Ich benutze Objectbox als ORM in meiner Anwendung und bekomme dbexception wegen nicht übereinstimmender UID, wenn ich einige zusätzliche Eigenschaften in einem meiner Entity hinzugefügt habe. Als ich die Dokumentation durchging, wo es erwähnt wird, dass, wenn wir Eigenschaften in Ihren Entitäten hinzufügen oder entfernen, objectbox sich um die Änderungen kümmert. Aber in meinem Fall passiert es nicht. Bitte werfen Sie einen Blick auf meine Log Stash, Entities und default.json und lassen Sie mich wissen, was die mögliche Lösung sein könnte, um dieses Problem zu lösen.ObjectBox - DBException wegen nicht übereinstimmender UID

ObjectBox Version: v1.2.0

Logs

Caused by: io.objectbox.exception.DbException: Incoming entity ID 8:7509306813647547019 does not match existing UID 8172185837942255744 
                      at io.objectbox.BoxStore.nativeCreate(Native Method) 
                      at io.objectbox.BoxStore.<init>(BoxStore.java:187) 
                      at io.objectbox.BoxStoreBuilder.build(BoxStoreBuilder.java:259) 
                      at com.letsdogether.dogether.dagger.module.ObjectModule.<init>(ObjectModule.java:34) 
                      at com.letsdogether.dogether.newDogetherHome.DogetherApplication.loadObjectsComponent(DogetherApplication.java:104) 
                      at com.letsdogether.dogether.newDogetherHome.DogetherApplication.onCreate(DogetherApplication.java:79) 
                      at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018) 
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4969) 
                      at android.app.ActivityThread.-wrap1(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1559) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5750) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 

Entities

Bisher sieht meine Einheit wie folgt aus:

@Entity 
public class BookingItem { 

    private long id; 
    @Id(assignable = true) 
    private long priority; 
    private String date; 
    private String formattedAddress; 
    private String orderId; 
    private String type; 
    private String title; 
    private int seatCount; 
    private String pricePerPerson; 
    private String time; 
    private String day; 
    private String redirectUrl; 
    private String status; 
    private long experienceId; 
    private String shareableUrl; 
    private ToOne<Image> image; 
    private ToOne<FeedElement> feedElementToOne; 

} 

und meine d efault.json sieht wie folgt aus:

{ 
    "_note1": "KEEP THIS FILE! Check it into a version control system (VCS) like git.", 
    "_note2": "ObjectBox manages crucial IDs for your object model. See docs for details.", 
    "_note3": "If you have VCS merge conflicts, you must resolve them according to ObjectBox docs.", 
    "entities": [ 
    { 
     "id": "1:4340630284304338974", 
     "lastPropertyId": "8:4962045346664663063", 
     "name": "BaseExperience", 
     "properties": [ 
     { 
      "id": "1:647607068638902600", 
      "name": "id" 
     }, 
     { 
      "id": "2:2702040841419862055", 
      "name": "actualId" 
     }, 
     { 
      "id": "3:3033280429430892352", 
      "name": "avgRating" 
     }, 
     { 
      "id": "4:7218439493883955972", 
      "name": "customerReviewsCount" 
     }, 
     { 
      "id": "5:80984715122814807", 
      "name": "pricePerPerson" 
     }, 
     { 
      "id": "6:3883498391107289246", 
      "name": "title" 
     }, 
     { 
      "id": "7:8998466498535731699", 
      "indexId": "1:1765637542740785127", 
      "name": "videoId" 
     }, 
     { 
      "id": "8:4962045346664663063", 
      "indexId": "2:2040540235098101863", 
      "name": "feedToOneId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "2:7267925106594307597", 
     "lastPropertyId": "17:4933883640820962465", 
     "name": "BookingItem", 
     "properties": [ 
     { 
      "id": "1:2843152350771579539", 
      "name": "id" 
     }, 
     { 
      "id": "2:3864807135625693365", 
      "name": "priority" 
     }, 
     { 
      "id": "3:2811475968058126998", 
      "name": "date" 
     }, 
     { 
      "id": "4:5994267266359962076", 
      "name": "formattedAddress" 
     }, 
     { 
      "id": "5:8101006061974386478", 
      "name": "orderId" 
     }, 
     { 
      "id": "6:5927620191588993112", 
      "name": "type" 
     }, 
     { 
      "id": "7:6885331133485554648", 
      "name": "title" 
     }, 
     { 
      "id": "8:1499199287986398172", 
      "name": "seatCount" 
     }, 
     { 
      "id": "9:2504021269483806060", 
      "name": "pricePerPerson" 
     }, 
     { 
      "id": "10:7281235595111103399", 
      "name": "time" 
     }, 
     { 
      "id": "11:6617722497399396474", 
      "name": "day" 
     }, 
     { 
      "id": "12:2473985422221126897", 
      "name": "redirectUrl" 
     }, 
     { 
      "id": "13:2904830306792476987", 
      "name": "status" 
     }, 
     { 
      "id": "14:2181195403266779204", 
      "name": "experienceId" 
     }, 
     { 
      "id": "15:3018070061889416768", 
      "name": "shareableUrl" 
     }, 
     { 
      "id": "16:6444561946554419063", 
      "indexId": "3:1705820361334358507", 
      "name": "imageId" 
     }, 
     { 
      "id": "17:4933883640820962465", 
      "indexId": "4:3744949801364672550", 
      "name": "feedElementToOneId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "3:160108942376228999", 
     "lastPropertyId": "6:8550232341754154098", 
     "name": "Feed", 
     "properties": [ 
     { 
      "id": "1:1692860121377933562", 
      "name": "id" 
     }, 
     { 
      "id": "2:8854384643059958161", 
      "name": "type" 
     }, 
     { 
      "id": "3:7664556112391884481", 
      "name": "title" 
     }, 
     { 
      "id": "4:5817245497381540954", 
      "name": "seeAll" 
     }, 
     { 
      "id": "5:2317329177962315800", 
      "name": "feedType" 
     }, 
     { 
      "id": "6:8550232341754154098", 
      "indexId": "5:680938987943440350", 
      "name": "feedElementToOneId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "4:7537217652864317597", 
     "lastPropertyId": "3:6112954104554042430", 
     "name": "FeedElement", 
     "properties": [ 
     { 
      "id": "1:4926947771749822767", 
      "name": "id" 
     }, 
     { 
      "id": "2:8131453946945993591", 
      "name": "nextUrl" 
     }, 
     { 
      "id": "3:6112954104554042430", 
      "name": "feedElementType" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "5:2348793681892920669", 
     "lastPropertyId": "8:7488175383318173729", 
     "name": "Image", 
     "properties": [ 
     { 
      "id": "1:638964174063060815", 
      "name": "actualId" 
     }, 
     { 
      "id": "2:4967935003726444020", 
      "name": "color" 
     }, 
     { 
      "id": "3:1353497332618194831", 
      "name": "id" 
     }, 
     { 
      "id": "4:2887915135519113362", 
      "name": "url" 
     }, 
     { 
      "id": "5:8827023004110736151", 
      "name": "url1080" 
     }, 
     { 
      "id": "6:1795038216616196366", 
      "name": "url160" 
     }, 
     { 
      "id": "7:5076768945024929823", 
      "name": "url360" 
     }, 
     { 
      "id": "8:7488175383318173729", 
      "indexId": "6:4968485658423571275", 
      "name": "baseExperienceId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "6:2806463549017646468", 
     "lastPropertyId": "7:1664725566577873631", 
     "name": "Location", 
     "properties": [ 
     { 
      "id": "1:151476474888340297", 
      "name": "id" 
     }, 
     { 
      "id": "2:6138069029925290631", 
      "name": "city" 
     }, 
     { 
      "id": "3:8096792582877437443", 
      "name": "formattedAddress" 
     }, 
     { 
      "id": "4:8477355478574191642", 
      "name": "mapImgUrl" 
     }, 
     { 
      "id": "5:5250680748074469313", 
      "name": "redirectUrl" 
     }, 
     { 
      "id": "6:5264044175718414745", 
      "name": "lat" 
     }, 
     { 
      "id": "7:1664725566577873631", 
      "name": "lng" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "7:1386266048121100599", 
     "lastPropertyId": "19:3626459003273476368", 
     "name": "User", 
     "properties": [ 
     { 
      "id": "1:7194535953200583315", 
      "name": "id" 
     }, 
     { 
      "id": "2:5880155672016170214", 
      "name": "age" 
     }, 
     { 
      "id": "3:7058496909689094561", 
      "name": "bio" 
     }, 
     { 
      "id": "4:7069552521054985458", 
      "name": "dob" 
     }, 
     { 
      "id": "5:2017478464009051869", 
      "name": "education" 
     }, 
     { 
      "id": "6:7411668424835907052", 
      "name": "email" 
     }, 
     { 
      "id": "7:3598420919065748818", 
      "name": "fullName" 
     }, 
     { 
      "id": "8:55256390599336845", 
      "name": "gender" 
     }, 
     { 
      "id": "10:4287083418016851024", 
      "name": "numberVerified" 
     }, 
     { 
      "id": "11:7486368292287445046", 
      "name": "phoneNumber" 
     }, 
     { 
      "id": "12:332314590071314536", 
      "name": "shareableUrl" 
     }, 
     { 
      "id": "13:3581159011829058253", 
      "name": "showTutorial" 
     }, 
     { 
      "id": "14:45244862441869123", 
      "name": "username" 
     }, 
     { 
      "id": "15:80719230754500568", 
      "name": "verified" 
     }, 
     { 
      "id": "16:8347557177943880481", 
      "name": "work" 
     }, 
     { 
      "id": "17:8060185784410064574", 
      "indexId": "7:3086777593508744479", 
      "name": "locationRelationId" 
     }, 
     { 
      "id": "18:7093446540087310685", 
      "indexId": "8:4392926741093129871", 
      "name": "profilePictureRelationId" 
     }, 
     { 
      "id": "19:3626459003273476368", 
      "name": "host" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "8:8172185837942255744", 
     "lastPropertyId": "4:2905712751785391104", 
     "name": "Video", 
     "properties": [ 
     { 
      "id": "1:4230636119749821279", 
      "name": "id" 
     }, 
     { 
      "id": "2:7059360054054181511", 
      "name": "nightMode" 
     }, 
     { 
      "id": "3:7865268851517989166", 
      "name": "thumbnailUrl" 
     }, 
     { 
      "id": "4:2905712751785391104", 
      "name": "url" 
     } 
     ], 
     "relations": [] 
    } 
    ], 
    "lastEntityId": "8:8172185837942255744", 
    "lastIndexId": "8:4392926741093129871", 
    "lastRelationId": "0:0", 
    "lastSequenceId": "0:0", 
    "modelVersion": 4, 
    "modelVersionParserMinimum": 4, 
    "retiredEntityUids": [], 
    "retiredIndexUids": [], 
    "retiredPropertyUids": [ 
    5678282376830830494 
    ], 
    "retiredRelationUids": [], 
    "version": 1 
} 

Jetzt, nach zwei neuen Eigenschaften zu meiner Einheit:

@Entity 
public class BookingItem { 

    //region Variables 

    private long id; 
    @Id(assignable = true) 
    private long priority; 
    private String date; 
    private String formattedAddress; 
    private String orderId; 
    private String type; 
    private String title; 
    private int seatCount; 
    private String pricePerPerson; 
    private String totalTax; // 1st new propery 
    private String totalAmount; // 2nd new property 
    private String time; 
    private String day; 
    private String redirectUrl; 
    private String status; 
    private long experienceId; 
    private String shareableUrl; 

    private ToOne<Image> image; 
    private ToOne<FeedElement> feedElementToOne; 

    //endregion 
} 

und meine default.json Datei:

{ 
    "_note1": "KEEP THIS FILE! Check it into a version control system (VCS) like git.", 
    "_note2": "ObjectBox manages crucial IDs for your object model. See docs for details.", 
    "_note3": "If you have VCS merge conflicts, you must resolve them according to ObjectBox docs.", 
    "entities": [ 
    { 
     "id": "1:797065206246794980", 
     "lastPropertyId": "6:5238604438383493820", 
     "name": "Feed", 
     "properties": [ 
     { 
      "id": "1:4778143127430396941", 
      "name": "id" 
     }, 
     { 
      "id": "2:2758756424257447876", 
      "name": "type" 
     }, 
     { 
      "id": "3:8593664445454711775", 
      "name": "title" 
     }, 
     { 
      "id": "4:3260484052954017714", 
      "name": "seeAll" 
     }, 
     { 
      "id": "5:5439051893044673734", 
      "name": "feedType" 
     }, 
     { 
      "id": "6:5238604438383493820", 
      "indexId": "1:9094671316112178979", 
      "name": "feedElementToOneId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "2:6365001579184770311", 
     "lastPropertyId": "8:4101477603790778141", 
     "name": "BaseExperience", 
     "properties": [ 
     { 
      "id": "1:22769140630409817", 
      "name": "id" 
     }, 
     { 
      "id": "2:9018492547283474382", 
      "name": "actualId" 
     }, 
     { 
      "id": "3:7038610176041110296", 
      "name": "avgRating" 
     }, 
     { 
      "id": "4:6685630808795149304", 
      "name": "customerReviewsCount" 
     }, 
     { 
      "id": "5:700371560430014226", 
      "name": "pricePerPerson" 
     }, 
     { 
      "id": "6:5016151397612468696", 
      "name": "title" 
     }, 
     { 
      "id": "7:1936717642548225179", 
      "indexId": "2:1430584179264421000", 
      "name": "videoId" 
     }, 
     { 
      "id": "8:4101477603790778141", 
      "indexId": "3:2605016395080192788", 
      "name": "feedToOneId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "3:6907123400855664498", 
     "lastPropertyId": "7:2458659011456972963", 
     "name": "Location", 
     "properties": [ 
     { 
      "id": "1:7686305118064424277", 
      "name": "id" 
     }, 
     { 
      "id": "2:2382662573706119095", 
      "name": "city" 
     }, 
     { 
      "id": "3:6622007474920998885", 
      "name": "formattedAddress" 
     }, 
     { 
      "id": "4:4372387463973357662", 
      "name": "mapImgUrl" 
     }, 
     { 
      "id": "5:4242635850865049170", 
      "name": "redirectUrl" 
     }, 
     { 
      "id": "6:6362649356171979743", 
      "name": "lat" 
     }, 
     { 
      "id": "7:2458659011456972963", 
      "name": "lng" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "4:1653889744595737127", 
     "lastPropertyId": "4:1222058476100793989", 
     "name": "Video", 
     "properties": [ 
     { 
      "id": "1:8884142329290866772", 
      "name": "id" 
     }, 
     { 
      "id": "2:9063641434858436120", 
      "name": "nightMode" 
     }, 
     { 
      "id": "3:6750530027777030938", 
      "name": "thumbnailUrl" 
     }, 
     { 
      "id": "4:1222058476100793989", 
      "name": "url" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "5:2328616238996484251", 
     "lastPropertyId": "18:8914368039716260545", 
     "name": "User", 
     "properties": [ 
     { 
      "id": "1:8699946482619760537", 
      "name": "id" 
     }, 
     { 
      "id": "2:4839102804066560980", 
      "name": "age" 
     }, 
     { 
      "id": "3:4125992685805831147", 
      "name": "bio" 
     }, 
     { 
      "id": "4:1279509102068824378", 
      "name": "dob" 
     }, 
     { 
      "id": "5:2555427309043212840", 
      "name": "education" 
     }, 
     { 
      "id": "6:5872521230199756193", 
      "name": "email" 
     }, 
     { 
      "id": "7:3289121993356321", 
      "name": "fullName" 
     }, 
     { 
      "id": "8:568408267657413444", 
      "name": "gender" 
     }, 
     { 
      "id": "9:5476542265369423309", 
      "name": "host" 
     }, 
     { 
      "id": "10:7787973054527294793", 
      "name": "numberVerified" 
     }, 
     { 
      "id": "11:7196291790521558535", 
      "name": "phoneNumber" 
     }, 
     { 
      "id": "12:1859664059288662356", 
      "name": "shareableUrl" 
     }, 
     { 
      "id": "13:4056506903853763516", 
      "name": "showTutorial" 
     }, 
     { 
      "id": "14:5747800400884843324", 
      "name": "username" 
     }, 
     { 
      "id": "15:3715522420100243828", 
      "name": "verified" 
     }, 
     { 
      "id": "16:3996139181248738872", 
      "name": "work" 
     }, 
     { 
      "id": "17:3912614163504861034", 
      "indexId": "4:724013235730952653", 
      "name": "locationRelationId" 
     }, 
     { 
      "id": "18:8914368039716260545", 
      "indexId": "5:9128231055610190580", 
      "name": "profilePictureRelationId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "6:162879391314678826", 
     "lastPropertyId": "19:5998558359424914894", 
     "name": "BookingItem", 
     "properties": [ 
     { 
      "id": "1:7685664473128076565", 
      "name": "id" 
     }, 
     { 
      "id": "2:4691963051617887607", 
      "name": "priority" 
     }, 
     { 
      "id": "3:4751608989851978419", 
      "name": "date" 
     }, 
     { 
      "id": "4:4298668252649681543", 
      "name": "formattedAddress" 
     }, 
     { 
      "id": "5:3557896982175720249", 
      "name": "orderId" 
     }, 
     { 
      "id": "6:5444396912371992185", 
      "name": "type" 
     }, 
     { 
      "id": "7:6350566628717896888", 
      "name": "title" 
     }, 
     { 
      "id": "8:5815948248926709539", 
      "name": "seatCount" 
     }, 
     { 
      "id": "9:1347517584208111506", 
      "name": "pricePerPerson" 
     }, 
     { 
      "id": "10:161182016726729049", 
      "name": "totalTax" 
     }, 
     { 
      "id": "11:2603677420345643342", 
      "name": "totalAmount" 
     }, 
     { 
      "id": "12:6964519603978301018", 
      "name": "time" 
     }, 
     { 
      "id": "13:6563743671015329186", 
      "name": "day" 
     }, 
     { 
      "id": "14:5252213579952934956", 
      "name": "redirectUrl" 
     }, 
     { 
      "id": "15:213202584538548112", 
      "name": "status" 
     }, 
     { 
      "id": "16:2664627056996276806", 
      "name": "experienceId" 
     }, 
     { 
      "id": "17:5051545379861430992", 
      "name": "shareableUrl" 
     }, 
     { 
      "id": "18:4513563003576451503", 
      "indexId": "6:4794120774209056940", 
      "name": "imageId" 
     }, 
     { 
      "id": "19:5998558359424914894", 
      "indexId": "7:2963448740658161805", 
      "name": "feedElementToOneId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "7:6072605387056962258", 
     "lastPropertyId": "8:620926858576597520", 
     "name": "Image", 
     "properties": [ 
     { 
      "id": "1:4722495423798219248", 
      "name": "actualId" 
     }, 
     { 
      "id": "2:5785809790036589091", 
      "name": "color" 
     }, 
     { 
      "id": "3:898405045397421733", 
      "name": "id" 
     }, 
     { 
      "id": "4:5442888368829266995", 
      "name": "url" 
     }, 
     { 
      "id": "5:3501485434468197765", 
      "name": "url1080" 
     }, 
     { 
      "id": "6:1316954607651171513", 
      "name": "url160" 
     }, 
     { 
      "id": "7:2942445530687114413", 
      "name": "url360" 
     }, 
     { 
      "id": "8:620926858576597520", 
      "indexId": "8:7864085141767381960", 
      "name": "baseExperienceId" 
     } 
     ], 
     "relations": [] 
    }, 
    { 
     "id": "8:7509306813647547019", 
     "lastPropertyId": "3:6958687385472305063", 
     "name": "FeedElement", 
     "properties": [ 
     { 
      "id": "1:3560464698535580090", 
      "name": "id" 
     }, 
     { 
      "id": "2:7436822921002379968", 
      "name": "nextUrl" 
     }, 
     { 
      "id": "3:6958687385472305063", 
      "name": "feedElementType" 
     } 
     ], 
     "relations": [] 
    } 
    ], 
    "lastEntityId": "8:7509306813647547019", 
    "lastIndexId": "8:7864085141767381960", 
    "lastRelationId": "0:0", 
    "lastSequenceId": "0:0", 
    "modelVersion": 4, 
    "modelVersionParserMinimum": 4, 
    "retiredEntityUids": [], 
    "retiredIndexUids": [], 
    "retiredPropertyUids": [], 
    "retiredRelationUids": [], 
    "version": 1 
} 

Antwort

0

Hier ist die Lösung, wie in den GitHub issue erklärte:

Die IDs der beiden Versionen in Ihrem Projekt sind völlig aus: https://www.diffchecker.com/PF3UlSM7

Bitte an die alten „default.json“ Datei wiederherstellen und wieder aufzubauen. Es sollte nur wenig Unterschiede in dieser Datei auf Updates geben.

0

Mein Problem behoben ist und Das Problem ist eigentlich, dass ich meine alte default.json-Datei versehentlich gelöscht habe, was ich nicht musste, was schließlich dazu führte, dass die Ids aller Entitäten neu generiert wurden und mir eine nicht übereinstimmende UID-Ausnahme verursachte. Danke an Markus Junginger.

0

Ja. Sie haben wahrscheinlich Ihre Objektstruktur geändert, nachdem sie einmal erstellt wurde.

Die einfachste Möglichkeit, es zu lösen: Wie Sie schon sagten, wenn es möglich, dass Sie die default.json Datei (das Build automatisch, während Sie Ihr Projekt erstellen) entfernen müssen. und im nächsten Build wird es erneut erstellt.

Ich empfehle Ihnen, über Resolving Meta Model Conflicts in objectbox Dokumentation zu lesen.

+0

Vielen Dank, Kumpel. Ich schätze Ihre Bemühungen, zu helfen und zu versuchen, mein Problem zu lösen. Entschuldigung für die verspätete Antwort. –

Verwandte Themen