【发布时间】:2012-02-17 06:49:58
【问题描述】:
我正在使用 Hibernate 3.6,但如果可能,我更愿意坚持使用 JPA 注释。
我有一个父实体,它有一个 id,可能还有其他简单的属性(名称、描述等),但会有一个二维的子实体(在简单的情况下是字符串)。
理想情况下,我希望 ParentEntity 看起来像这样:
class ParentEntity {
@Id
private Long id;
....
@????
// first Long should be column_index, second Long should be row_index
private Map<Long,Map<Long,String>> gridOfStrings;
}
在我的数据库中,我的 gridOfString 表示如下:
GridItems
------------
grid_id (int,FK to grid)
column_index (int)
row_index (int)
value (varchar)
我可以灵活地更改架构或实体的工作方式。
让 Hibernate 为我施展魔法的最简单方法是什么?我想避免编写将实体列表映射/转换为字符串行列的逻辑。
替代方法
我可以假设我将只有 2 或 3 列,并将它们设为单独的地图。我不知道如何让休眠过滤每个加入。
实体可能如下所示:
@???
//rows where column_index=1
private Map<Long,String> column1;
...
private Map<Long,String> column2;
...
private Map<Long,String> column3;
【问题讨论】: