Создать таблицу с иностранным полем сбора
У меня есть этот абстрактный класс:
DomainItem
<code>abstract public class DomainItem { @DatabaseField(generatedId = true) protected long id; @ForeignCollectionField(eager = false) protected ForeignCollection<ContentItem> contentItens; //getters and setters } </code>
ContentItem:
<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>
И эти (без резюме):
<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>
В моем DatabaseHelper я пытаюсь создать таблицы:
<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>
Таблица PhytoterapicContent создана. Но я получил следующую ошибку:
java.sql.SQLException: Foreign collection class br.com.project.model.ContentItem for field 'contentItens' column-name does not contain a foreign field of class br.com.project.model.PhytoterapicItem