Сокращенная версия моей схемы:
utility_company
id int not null -- PK
name varchar(255) not null
utility_settings
utility_id -- FK to utility
use_magic tinyint(1) not null default 0
Между этими двумя таблицами существует взаимно-однозначное сопоставление. Оставляя в стороне пригодность этого проекта, я хочу сопоставить данные в обеих этих таблицах с одним объектом. В Hibernate / JPA это якобы делается следующим образом:
@Entity
@Table(name = "utility_company")
@SecondaryTables({
@SecondaryTable(
name = "utility_settings",
pkJoinColumns = {
@PrimaryKeyJoinColumn(
name="utility_id", referencedColumnName="id")
})
})
public class UtilityCompany extends AbstractEntity {
и т. Д.
Каждый @Column
включает в себя соответствующее имя таблицы.
При развертывании я получаю эту ошибку:
Cannot find the expected secondary table:
no utility_company available for poscore.model.UtilityCompany
Таблица utility_company
определенно существует (предыдущая версия отображает только UtilityCompany
на таблицу utility_company
; я добавляю utility_settings
).
Нашли многочисленные посты на форуме с такими точными проблемами и без ответов. Я также пробовал различные якобы легальные формы указания @SecondaryTable
, все из которых имеют одинаковый эффект.
Кто-нибудь успешно использовал @SecondaryTable
, и, если да, видел это?