OracleとJPAを使用してdbスキーマを構築しようとしています。私はJPAを初めて使用しますが、常にsqlを直接使用していました。私が作成する必要があるのは2つのテーブルです。1つは現在のVOIP呼び出しを含み、もう1つはそれらの呼び出しの履歴を含みます。2つのテーブルは同一です。JPAで私はこれを書きました:
@Entity
@Table(name = "voip_currentCalls")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class VoipCurrentCall implements Serializable {
private static final long serialVersionUID = 1L;
protected CompositeID id;
protected Timestamp startTime;
protected Timestamp endTime;
protected String calledNumber;
protected String callingNumber;
protected Person contact;
protected CallSource source;
protected CallStatus status;
protected CallType type;
protected CallStage stage;
@Entity
@Table(name = "voip_historyCalls")
public class VoipHistoryCall extends VoipCurrentCall implements Serializable {
...
ご覧のとおり、2番目のテーブルには他のフィールドはありませんが、最初のテーブルを拡張したものです。VoipCurrentCallをVoipHistoryCallにキャストしようとすると、java.lang.ClassCastExceptionが発生します。VoipCurrentCallをVoipHistoryCallにキャストできません。
何か提案はありますか?私はおそらく何かが欠けています。よろしくお願いします!