【发布时间】:2013-10-15 00:04:06
【问题描述】:
由于与现有遗留代码和流程相关的各种原因,我希望能够使用 Hibernate 将单个实体类映射到具有相同结构的不同表。这些表是在运行时从另一个已知表动态创建的。因此,例如,我将有以下课程:
public class Item {
private int id;
private String label;
...
}
这将被映射到 3 个不同的表,ITEM1、ITEM2 和 ITEM3 都具有相同的结构:
CREATE TABLE ITEM[1|2|3] (
NUMBER id PRIMARY KEY,
VARCHAR label NOT NULL)
如上所述,表将根据一些外部配置/条件在运行时创建。
我已经查看了关于 SO 的以下问题:
- JPA, How to use the same class (entity) to map different tables?
- How to map one class to different tables using hibernate/jpa annotations
虽然可能,但建议的解决方案(子类化)并不是很吸引人。这意味着运行时动态类创建的一些黑魔法,如果可以的话,我宁愿避免。
来自this 和this 的博文,我相信可以创建动态Hibernate 映射,将同一个实体映射到多个表。
有没有人有更多实现这种动态映射的经验?
【问题讨论】: