gpt4 book ai didi

java - JPA 强制转换异常

转载 作者:行者123 更新时间:2023-12-01 08:13:28 25 4
gpt4 key购买 nike

我正在尝试使用 Oracle 和 JPA 构建数据库架构。我是 JPA 新手,我总是直接使用 sql。我需要创建两个表:第一个包含当前 VOIP 调用,另一个包含这些调用的历史记录。这两个表是相同的。在 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 {
...

正如您所看到的,第二个表没有其他字段,但它只是第一个表的扩展。当我尝试将 VoipCurrentCall 转换为 VoipHistoryCall 时,出现 java.lang.ClassCastException: VoipCurrentCall 无法转换为 VoipHistoryCall。

你有什么建议吗?我可能错过了一些东西。提前感谢大家!

最佳答案

这就是 Java 的设计方式;您不能将父类(super class)强制转换为子类,只能反之亦然。和JPA没有任何关系。

关于java - JPA 强制转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15475848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com