Ich habe mit GreenDAO ein DB-Modell zu erstellen versucht. Das Problem begann, als ich versuchte, mehr als eine Beziehung zwischen verschiedenen Tabellen zu erstellen.GreenDAO unterstützen mehrere Beziehungen zwischen Tabellen
grundsätzlich habe ich eine Message
Tabelle, eine Conversation
Tabelle und eine User
Tabelle.
der Benutzer hat eine Liste der Nachrichten und die Nachricht hat eine Mutter Gespräch.
Ich habe versucht, diesen Code zu schreiben für die DB-Erstellung:
private static void addUser(Schema schema) {
user = schema.addEntity("User");
userId = user.addIdProperty().getProperty();
user.addStringProperty("facebookId").unique().index();
user.addStringProperty("firstName");
user.addStringProperty("lastName");
user.addStringProperty("fullName");
user.addStringProperty("photoUrl");
}
private static void addMessage(Schema schema) {
message = schema.addEntity("Message");
messageId = message.addIdProperty().getProperty();
message.addStringProperty("messageId").primaryKey();
message.addDateProperty("date");
message.addStringProperty("content");
message.addStringProperty("typeString");
}
private static void addConversation(Schema schema) {
conversation = schema.addEntity("Conversation");
conversation.addIdProperty();
conversation.addStringProperty("conversationId");
// REST OF THE CODE
}
private static void fakeRelationship(Schema schema) {
Property author = message.addLongProperty("author").getProperty();
Property parent = message.addLongProperty("parent").getProperty();
message.addToOne(user, author);
message.addToOne(conversation, parent);
user.addToMany(message, author);
conversation.addToMany(message, parent);
}
nach diesem Code ausgeführt wird, habe ich diesen Fehler:
Exception in thread "main" java.lang.RuntimeException: Currently only single FK columns are supported: ToOne 'parent' from Message to Conversation
at de.greenrobot.daogenerator.ToOne.init3ndPass(ToOne.java:91)
at de.greenrobot.daogenerator.Entity.init3rdPassRelations(Entity.java:557)
at de.greenrobot.daogenerator.Entity.init3ndPass(Entity.java:550)
at de.greenrobot.daogenerator.Schema.init3ndPass(Schema.java:185)
at de.greenrobot.daogenerator.DaoGenerator.generateAll(DaoGenerator.java:94)
at de.greenrobot.daogenerator.DaoGenerator.generateAll(DaoGenerator.java:79)
at com.glidetalk.dao.generator.GlideDaoGenerator.main(GlideDaoGenerator.java:27)
gehe diese meen eigentlich, dass ich mehr nicht schaffen kann, als eine Beziehung für jede Tabelle in meinem DB ?!
habe ich alles von Hand schreiben?
, was diese Art von Ausnahme verursachen? – thepoosh
greenDAO nicht umgehen kann FK bestehend aus zwei oder mehr Eigenschaften. –
Ich bekam diese Ausnahme, als ich vergessen hatte, die Id-Spalte zu der Entität hinzuzufügen, die mit addToOne hinzugefügt wurde. – mharper