如何解决如何为继承的JPA类的ID使用不同的列名
类似于Hibernate : How override an attribute from mapped super class和Inheritance and @AttributeOverride on @Id field,但情况更简单。我只想更改班级名称
CREATE TABLE `billing_target` (
`billingTargetID` int(11) NOT NULL,`targetType` char(5) NOT NULL,`targetID` int(11) NOT NULL
PRIMARY KEY (`billingTargetID`)
);
CREATE TABLE `Client` (
`clientID` int(11) NOT NULL,`name` varchar(200),PRIMARY KEY (`clientID`)
);
到目前为止,这是我的尝试
@Data
@Entity
public class BillingTarget implements Serializable {
@Id
@Column(name = "BillingTargetID")
private Integer id;
}
@Data
@Entity
@Table(name = "Client")
@DiscriminatorValue("CLIENT")
@EqualsAndHashCode(callSuper = true)
@AttributeOverride(
name = "id",column = @Column(name = "ClientID")
)
public class Client extends BillingTarget {
private String name;
}
但是,我的查询正在寻找Client.BillingTargetID
而不是Client.ClientID
自从我@AttributeOverride
以来,它被忽略了。
不支持将@AttributeOverride或@AttributeOverrides与实体继承结合使用:
如果我将BillingTarget
设为@MappedSuperclass
,我会得到
由以下原因引起:java.lang.NullPointerException 在org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processFkSecondPassesInOrder(InFlightMetadataCollectorImpl.java:1745)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。