【发布时间】:2012-02-28 06:47:04
【问题描述】:
我正在寻找根据表类型和引用键从 2 个不同表中获取数据的解决方案,请查看以下示例表结构和实体类。
表格
1**Type**
(ID, TableName // Value for TableName can be 'TableA' or 'TableB')
2**TableA**
( ID, NameForA)
3**TableB**
(ID, NameForB)
4**TableMain**
(ID, Name, TypeID (foreign key of Type table), DataID (can be reference of TableA or TableB))
实体类结构
Class Abstract Model{ int ID; } // Model is base class, holds data of ID field and is parent for all entity classes
Class Type extends Model{String TableName;}
Class TableA extends Model{String NameForA;}
Class TableB extends Model{String NameForB;}
Class TableMain extends Model{
String Name;
Type type;
Model data; // can be TableA class or TableB based on Type
}
我正在寻找的是,TableMain 类具有字段“数据”,它可以是 TableA 或 TableB 类的对象,如果表名是“TableA”,它将根据包含 tableName 的“类型”决定,那么数据将是实例TableA 类的名称,或者如果 tableName 是“TableB”,则数据将是 TableB 的实例。
我知道这不是一个好习惯,但我已经有很大的数据库结构,我无法更改它。所以这是我必须解决的唯一方法。
有没有人可以帮助我,如何使它与休眠或任何其他方式一起工作?或者是否可以通过休眠自动填充数据。
谢谢。
【问题讨论】: