12
私はGreenDAOを使用してDBモデルを作成しようとしています。問題は異なるテーブル間で複数の関係を作成しようとしたときに始まりました。GreenDAOはテーブル間の複数の関係をサポートします
基本的には、私はテーブル、Conversation
テーブル、User
テーブルを持っています。
ユーザーにはメッセージの一覧があり、メッセージには親の会話があります。
私はDB作成するため、このコードを書いてみました:このコードを実行した後に
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);
}
を、私はこのエラーを得た:
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)
が、これは実際に私はより多くを作成することができないということミーンありません私のDBの各テーブルのための1つの関係?
私は手動ですべてを書かなければなりませんか?
このような例外はどのような原因ですか? – thepoosh
greenDAOは、2つ以上のプロパティからなるFKを処理できません。 –
addToOneを使用して追加されるエンティティにID列を追加することを忘れてしまったときに、この例外が発生しました。 – mharper