【问题标题】:How to map 2 table to 1 entity class with hibernate annotation?如何使用休眠注释将 2 个表映射到 1 个实体类?
【发布时间】:2011-03-08 03:19:08
【问题描述】:

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

亲切的问候

内森

【问题讨论】:

    标签: database hibernate hibernate-mapping


    【解决方案1】:

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

    【讨论】:

    • 谢谢,但在这种情况下不起作用。还有其他建议吗?
    【解决方案2】:

    你做不到。

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

    【讨论】:

    • 能否请您演示一下您的观点?我是新来的,所以我现在对你在说什么感到困惑。傻我。 :)
    【解决方案3】:

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

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

    由于休眠不支持联合。我从 2 个查询(主表和备份表)中提取了结果并使用了 listTimeTable.addAll(listbackTimeTable); 这将得到与联合所有操作相同的结果。

    再一次,为了这个社区的利益,请发布您的实现...

    谢谢,

    希里什

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      相关资源
      最近更新 更多