Utwórz tabelę z polem Kolekcja zagraniczna
Mam tę klasę abstrakcyjną:
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>
A te (bez streszczenia):
<code>@DatabaseTable() public class PhytoterapicItem extends DomainItem{ public PhytoterapicItem(){ } } </code>
Skład fitoterapiczny
<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>
W mojej bazie danych próbuję utworzyć tabele:
<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>
Tworzona jest tabela PhytoterapicContent. Ale mam błąd, który następuje:
java.sql.SQLException: obca klasa kolekcji br.com.project.model.ContentItem dla pola 'contentItens' nazwa-kolumny nie zawiera obcego pola klasy br.com.project.model.PhytoterapicItem