如何使用hibernate注释将2个表映射到1个实体类?

时间:2011-03-08 03:19:09

标签: database hibernate hibernate-mapping

我是Hibernate的新手。现在我有一个问题。我有2个表(Timetable和Timetable_backup)具有相似的结构,因为timetable_backup表只是备份当前数据的时间表表的版本。现在我不知道如何获取过去到现在的所有数据。在hibernate中,我们不能像在SQL中那样使用UNION来查询。所以我尝试使用继承和@mappedsuperclass将2个表映射到1个实体,但它对我不起作用。请帮我解决一下这个。如果背景不明确,请告诉我。

亲切的问候

3 个答案:

答案 0 :(得分:0)

你想要的东西可能就像Envers这样的Hibernate插件,可以处理表中的版本记录。您只需在类中使用几个注释,它提供了一个界面来查找过去的记录等。

答案 1 :(得分:0)

你不能这样做。

典型的解决方法是将实体映射到主表,并使用native SQL queries访问备份表。

答案 2 :(得分:0)

此时您可能已找到已发布问题的答案或解决方法。如果可能的话,您可以在这里发布,以便它可以帮助其他人。

无论如何,我发现以下链接解释了如何使用单个POJO Mapping same POJO to more than one table in Hibernate创建表格。

由于hibernate不支持union。我从2查询(主表和备份表)中提取结果并使用 listTimeTable.addAll(listbackTimeTable); 这将给出与union all操作相同的结果。

请再次发布您的实施以获得此社区的好处...

谢谢,

希里什