Я пытаюсь создать представления Ebean для таблиц на основе простого объединения, и у меня возникают проблемы при extend
Model
для базовой таблицы.
Поля видов и поля моделей абсолютно совпадают.
Моя модель стола выглядит так:
@Entity
@Table(name = "assets")
public class Asset extends EnvironmentModel<Integer> {
@Id
@Column
@PrimaryKey
@Attribute(index = 0)
private int assetId;
@Column
@Attribute(index = 1)
private String make;
etc...
}
Это прекрасно работает.
Теперь то, что я пытаюсь сделать с View
:
@View(name = "assets_view")
public class AssetView extends Asset {
}
Я думал, что смогу сделать это, потому что AssetView
и Asset
имеют одинаковые точные поля.
Когда я делаю это таким образом, я получаю исключение:
Caused by: javax.persistence.PersistenceException: models.asset.AssetView is NOT an Entity Bean registered with this server?
Поэтому моей следующей попыткой было добавить аннотацию @Entity
в класс View. например,
@Entity
@View(name = "assets_view")
public class AssetView extends Asset {
}
При компиляции я получаю следующее исключение:
Error injecting constructor, java.lang.IllegalStateException: Checking class models.asset.AssetView and found class models.asset.Asset that has @Entity annotation rather than MappedSuperclass?
Но я не могу удалить аннотацию @Entity
из моего Asset
класса, потому что мне это нужно для вставки.
Мои вопросы:
Есть ли способ иметь представление и таблицу совместно использовать ту же модель, чтобы я мог запросить из представления и вставить / обновить в таблицу?