【问题标题】:Alternative of JPAJPA 的替代品
【发布时间】:2010-04-02 07:46:27
【问题描述】:

我想将 JPA 用于我的 Java 桌面应用程序的持久层,但我遇到了与 JPA - Entity design problem 中描述的类似问题

我没有找到解决上述问题的方法,这就是为什么我想使用 JPA 的任何其他替代方案。

如果能解决上述问题就更好了。

【问题讨论】:

标签: java jpa


【解决方案1】:

IMO 处理此类问题的正确方法是使用生成的内部(通常为 Long)ID 而不是自然主键 - 这消除了整个问题。当然,这需要修改您的数据库架构。我在answer to the other post 中包含了一个示例映射。

如果这是不可能的,并且提到的解决方案对您不满意(顺便说一句,为什么?),您可以尝试 Hibernate,它提供了 JPA 功能的超集(尽管我无法提供使用 Hibernate 的解决方案)我的头顶 - 尤其是在不知道 JPA 解决方案存在什么问题的情况下)。

【讨论】:

    【解决方案2】:

    如果你让 jpa 分配一个 id(例如整数)作为你的对象的主键,事情就会很好地工作。您提到的示例中的复杂性只是因为作者对主键的限制

    【讨论】:

      【解决方案3】:

      正如其他答案之一所说,生成一个“内部”(代理)密钥......也就是“数据存储”身份。这是 JDO 规范的一部分(JPA 仅支持应用程序标识,而 JDO 支持数据存储和应用程序标识)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-03
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        • 1970-01-01
        • 2010-11-08
        • 2012-01-25
        相关资源
        最近更新 更多