gpt4 book ai didi

java - 覆盖 JPA MappedSuperClass 通用属性

转载 作者:行者123 更新时间:2023-11-30 04:07:13 27 4
gpt4 key购买 nike

我有以下场景,我需要子类能够指定 MappedSuperClass 中找到的属性的实际类型。我使用 hibernate 作为提供程序,并且我不介意使用 hibernate 特定注释来解决这个问题。

@MappedSuperclass
abstract class BaseA{
....

@OneToMany(mappedBy = "baseA")
public Set<? extends BaseB> getBaseB(){
.....
}
}

@MappedSuperclass
abstract class BaseB{
.....

@ManyToOne(optional = false)
@JoinColumn(name = "basea_id")
public BaseA getBaseA(){
.....
}
}

@Entity
class BaseAImpl extends BaseA{
public Set<BaseBImpl> getBaseB(){
.....
}
}

@Entity
class BaseBImpl{

public BaseAImpl getBaseA(){
.....
}
}

最佳答案

@AssociationOverride 在这种情况下将为您提供帮助。请参阅documentation对于它(当然是JPA注解)。您可以将它与 @AttributeOverrides 注释结合使用来覆盖基本类型。示例(取自示例):

@MappedSuperclass
public class Employee {
...
@ManyToOne
protected Address address;
...
}

@Entity
@AssociationOverride(name="address",
joinColumns=@JoinColumn(name="ADDR_ID"))
// address field mapping overridden to ADDR_ID foreign key
public class PartTimeEmployee extends Employee {
...
}

关于java - 覆盖 JPA MappedSuperClass 通用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455935/

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