Итак, я не уверен, как задать этот вопрос, так как кажется, что найти ответ на этот вопрос должно быть довольно легко.
у меня 3 таблицы; ContentHeader, ContentType1 и ContentType2. У ContentHeader есть первичный ключ автоинкремента. ContentType1 и ContentType2 поддерживают внешние ключи для первичного ключа ContentHeader. Эти внешние ключи также являются первичными ключами для соответствующих таблиц.
CREATE TABLE contentHeader (contentID INT AUTO_INCREMENT PRIMARY KEY, ...) ENGINE=InnoDB;
CREATE TABLE contentType1 (contentID INT PRIMARY KEY, FOREIGN KEY (contentID) REFERENCES contentHeader (contentID), ...) ENGINE=InnoDB;
CREATE TABLE contentType2 (contentID INT PRIMARY KEY, FOREIGN KEY (contentID) REFERENCES contentHeader (contentID), ...) ENGINE=InnoDB;
Я создал четыре класса:
@Entity
public class ContentHeader {
@Id
@GeneratedValue
protected int contentID;
...
}
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class Content {
@Id
@OneToOne
protected ContentHeader contentHeader;
...
}
@Entity
public class ContentType1 extends Content {
...
}
@Entity
public class ContentType2 extends Content {
...
}
Выдает нулевой указатель при попытке создать схему. Я почти уверен, что мне не хватает чего-то простого. Я заметил PrimaryKeyJoinColumn, но я не уверен, что мне это нужно или нет.