Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA:如何扩展类并更改表映射?_Java_Jpa_Mapping - Fatal编程技术网

Java JPA:如何扩展类并更改表映射?

Java JPA:如何扩展类并更改表映射?,java,jpa,mapping,Java,Jpa,Mapping,我已经创建了一组基本的类,其中包含用于进行会计处理的方法 “我的分类账”类允许您维护一个基本分类账,该分类账允许您获取当前余额,并在分类账上执行添加新分类账分录的交易 我有一个通用分类账系统运行良好 内幕分类账是我的分类账集合,它是一个列表条目 现在,我想用它来创建Billing/BillingEntry实体(映射到Billing和Billing\u ENTRIES表)和CustomerCredits/CustomerCreditEntry实体(映射到CUST\u CREDITS;CUST\u

我已经创建了一组基本的类,其中包含用于进行会计处理的方法

“我的分类账”类允许您维护一个基本分类账,该分类账允许您获取当前余额,并在分类账上执行添加新分类账分录的交易

我有一个通用分类账系统运行良好

内幕分类账是我的分类账集合,它是一个列表条目

现在,我想用它来创建Billing/BillingEntry实体(映射到Billing和Billing\u ENTRIES表)和CustomerCredits/CustomerCreditEntry实体(映射到CUST\u CREDITS;CUST\u CREDITS\u ENTRY)

我想通过扩展Ledger和LedgerEntry来创建这些类。父实体类(分类账、账单、客户信用证)可以使用@table注释轻松映射到不同的表

但我不知道如何处理用相应的BillingEntry、CustomerCreditEntry替换账本实体的问题


编辑2010-09-24:

我只是放弃了,现在所有的分类账实体都转到了子分类账实体


我认为,这里的问题是,我不能在父类中创建引用只存在于继承类中的对象的方法

听起来像是泛型的purrfect场景:)

我想象的是:

public class Ledger<T extends LedgerEntry> {
   List<T> entries;
   // getters and setters
}

public class CustomerCreditsLedger extends Ledger<CustomerCreditsEntry> {
}
公共分类账{
列出条目;
//接球手和接球手
}
公共类CustomerCreditsLedger扩展分类账{
}

也许要将JPA与表继承联系起来,请看一看:(它很旧,但似乎是正确的,并且要弄清楚基于注释的配置并不难)。从我读到的内容来看,您应该关注联接或表每类策略。

您不能将这样的模型映射到JPA(泛化集合)。我使用联接方法为继承分类账的不同实体实例化不同的表。那很好。问题是我真正想要的是为从LedgerEntry继承的子实体实例化不同的表。。。