gpt4 book ai didi

java - SINGLE_TABLE 的 JPA 继承替代方案?

转载 作者:行者123 更新时间:2023-12-01 15:04:27 27 4
gpt4 key购买 nike

AppEngine 仅支持 JPA 继承的“TABLE_PER_CLASS”和“MAPPED_SUPERCLASS”。不幸的是,不支持“JOINED”,尤其是“SINGLE_TABLE”。

我想知道实现 SINGLE_TABLE 替代方案的最佳替代方案是什么?

我唯一的要求是:1)有单独的类,如 AbstractEmployee、InternalEmployee、ExternalExmployee。2) 能够对所有员工运行查询,从而产生InternalEmployee 和ExternalEmployee 实例。

我唯一想到的是使用包含所有字段的“大”Employee 对象?还有其他想法吗?

PS:通过 http://code.google.com/p/googleappengine/issues/detail?id=8366 投票支持适当的“SINGLE_TABLE”支持

最佳答案

理论上,您可以使用 @Embeded 和 @Embeddable 将相关字段分组到一个对象中。所以你会有一个看起来像这样的类。

@Entity
public class Employee {
// all the common employee fields go here
//

// the discriminator column on Employee class lets you be specific in your queries
private Integer type;

@Emebded
private Internal internal; // has the fields that are internal

@Embeded
private External external; // has the fields that are external

equals & hashcode that compare based on the discriminator type and other fields
}

关于java - SINGLE_TABLE 的 JPA 继承替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159277/

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