【问题标题】:Maintaining JPA Entities维护 JPA 实体
【发布时间】:2011-02-24 17:58:20
【问题描述】:

我们正处于使用 JPA 的项目的开始编码阶段。我们使用 Netbeans 中的工具根据我们的模式生成 JPA 实体。它工作得很好,但从那时起我们就不得不对实体进行一些自定义。

我们对架构进行了适当的大小更改(添加了一个表,并交换了其他人之间的关系),因此需要更新我们的实体。我们无法重新生成它们,因为我们必须重新应用我们拥有的所有自定义项,所以我们都是手工完成的。没什么大不了的,只是比我预期的要花更多时间。

自定义是我们添加的命名查询、级联类型、我们自己的字符串方法、equals 和哈希码方法。我考虑创建扩展实体的类以添加到 toString、equals 和 hascode 方法中,这样如果我们重新生成它们,它们就不会丢失。但我不确定级联类型和命名查询。

有没有更好的办法,还是只是一厢情愿?

【问题讨论】:

    标签: java jpa


    【解决方案1】:

    我相信这只是一厢情愿。生成实体并扩展它们只会给您带来一组不同的问题。您生成的实体必须注释为 @MappedSuperclass 并且没有表名 - 加上您的扩展可能必须重复一些注释,而且您有时必须调整命名查询自定义......这一切只是麻烦。

    一般来说,从数据库模式生成实体是一次性的事情,需要手动维护。

    但是,从实体生成数据库架构可能需要更长的时间。但是,即便如此,您也必须谨慎处理架构迁移相关的问题。

    底线——同步持久实体和数据库模式需要小心的手动工作。

    【讨论】:

    • 感谢您的回答。这和我想的差不多。我想我只是希望我做错了什么或没有以正确的方式思考它,并且一定有更好的方法。
    • 更多可能有用的信息可以在这里找到:stackoverflow.com/questions/2052781/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多