正如here所述,我希望通过捕获实体类不匹配时发生的异常来更新用户的数据库。我知道我可以为每个db-interface方法添加一个catch语句,但这很容易出错*。其他“轮询方法”也是可能的,但它们并不像我想要的那样通过捕获异常来打断中断。
我认为我正在寻找的是在将异常传递给用户之前捕获异常(可能使应用程序崩溃)。我会把它放在那里。我已将它放在非NB应用程序的main()中。
答案 0 :(得分:0)
我有类似的问题,但我想我的解决方法有点困难。我在服务器端使用JPA,服务器实际上是一个Web服务提供者。
持久性由容器管理,根据我的应用程序设置,它使用“创建”策略。当然,每次我更改我的实体并重新部署应用程序时,都会抛出很多例外。
我最终决定在单独的流程中创建/迁移现有数据库。这是,读取与实体关联的元数据并将其与当前数据库进行比较。
之后,它会创建一个迁移脚本,以防db模式不同以适应新模式而不会丢失任何信息(迁移脚本生成复杂性取决于您计划如何处理数据类型更改或属性删除等情况)。最后一步是重新部署应用程序(在您的情况下启动它)。
我建议采用主动方法,不要等待抛出异常,而是在运行应用程序之前尝试猜测更改。