2017-03-12 16 views
1

私はちょうどこのORMを学び始めているので、何か間違ったことをしたかもしれません。エンティティでは、OneToOne関係を作成しますが、greendaoはそれを生成しません。私が外部キーのエンティティコンストラクタ引数を書いているのであれば、これを無視して、このようにします。したがって、表にはプロパティと列はありません。ありがとうございました。GreenDaoは外部キーを作成しませんか?

公開:

@Entity(active = true) 
public class Public { 

@Id(autoincrement = true) 
Long id; 

int publicId; 

@ToOne(joinProperty = "id") 
private Category category; ... 

@Generated(hash = 12945501) 
public Public(Long id, int publicId) { 
    this.id = id; 
    this.publicId = publicId; 
} 

PublicDao:

public class PublicDao extends AbstractDao<Public, Long> { 

public static final String TABLENAME = "PUBLIC"; 

/** 
* Properties of entity Public.<br/> 
* Can be used for QueryBuilder and for referencing column names. 
*/ 
public static class Properties { 
    public final static Property Id = new Property(0, Long.class, "id", true, "_id"); 
    public final static Property PublicId = new Property(1, int.class, "publicId", false, "PUBLIC_ID"); 
} ... 

/** Creates the underlying database table. */ 
public static void createTable(Database db, boolean ifNotExists) { 
    String constraint = ifNotExists? "IF NOT EXISTS ": ""; 
    db.execSQL("CREATE TABLE " + constraint + "\"PUBLIC\" (" + // 
      "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: id 
      "\"PUBLIC_ID\" INTEGER NOT NULL);"); // 1: publicId 
} 

答えて

0

私のミス。別のフィールドを追加してjoinPropertyに書き込む必要があります。

関連する問題