Erstellen Sie eine Tabelle mit Foreign Collection Field

Ich habe diese abstrakte Klasse:

DomainItem

<code>abstract public class DomainItem {

    @DatabaseField(generatedId = true)
    protected long id;

    @ForeignCollectionField(eager = false)
        protected ForeignCollection<ContentItem> contentItens;

    //getters and setters
}
</code>

Inhaltselement:

<code>abstract public class ContentItem {

    @DatabaseField(generatedId = true)
    protected long id;

    @DatabaseField(foreign = true)
    protected DomainItem domainItem;


    @DatabaseField()
    protected String content;

    //getters and setters
}
</code>

Und diese (keine Zusammenfassung):

<code>@DatabaseTable()
public class PhytoterapicItem extends DomainItem{

    public PhytoterapicItem(){

    }

}
</code>

PhytoterapicContent

<code>@DatabaseTable(tableName = "phytoterapiccontent")
public class PhytoterapicContent extends ContentItem {

    @DatabaseField(canBeNull = false)
    private String defaultName;

    @DatabaseField(canBeNull = false)
    private String scientificName;

    //getters and setters
}
</code>

In meinem DatabaseHelper versuche ich die Tabellen zu erstellen:

<code>//DatabaseHelper
...
@Override
public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
    try {
        Log.i(TAG, "onCreate");
        TableUtils.createTable(connectionSource, PhytoterapicContent.class);
        Log.i(TAG, "Created table PhytoterapicContent");

        TableUtils.createTable(connectionSource, PhytoterapicItem.class);
        Log.i(TAG, "Created table PhytoterapicItem");
    catch{
       ...
    }
</code>

Die Tabelle PhytoterapicContent wird erstellt. Aber ich habe den folgenden Fehler bekommen:

java.sql.SQLException: Fremdauflistungsklasse br.com.project.model.ContentItem für Feld 'contentItens' Spaltenname enthält kein Fremdfeld der Klasse br.com.project.model.PhytoterapicItem

Antworten auf die Frage(2)

Ihre Antwort auf die Frage