在Hibernate中使用JFace数据绑定:这可能吗?

在Hibernate中使用JFace数据绑定:这可能吗?,hibernate,data-binding,eclipse-rcp,jface,Hibernate,Data Binding,Eclipse Rcp,Jface,我们的项目是一个使用Hibernate作为ORM的EclipseRCP应用程序。我最近学习了JFace数据绑定,其中GUI和数据模型可以自动同步 我按照Lars Vogel的优秀测试方法编写了一个简短的测试实现,并对该框架印象深刻 那么,有没有办法将其挂接到Hibernate中,以便在观察到的小部件中所做的更改自动持久化到数据库中?这似乎是一件很自然的事情,但我还没有找到好的教程 我怀疑我可能找错了方向,或者错过了一些基本概念 有人试过这样做吗?这里的“最佳实践”是什么?我认为您不应该在每次修改

我们的项目是一个使用Hibernate作为ORM的EclipseRCP应用程序。我最近学习了JFace数据绑定,其中GUI和数据模型可以自动同步

我按照Lars Vogel的优秀测试方法编写了一个简短的测试实现,并对该框架印象深刻

那么,有没有办法将其挂接到Hibernate中,以便在观察到的小部件中所做的更改自动持久化到数据库中?这似乎是一件很自然的事情,但我还没有找到好的教程

我怀疑我可能找错了方向,或者错过了一些基本概念


有人试过这样做吗?这里的“最佳实践”是什么?

我认为您不应该在每次修改GUI后将数据模型持久化到数据库中。一些原因:

  • 这可能导致性能非常差(最坏的情况是在每次keystoke之后调用数据库更新)
  • 可能很难实现某些GUI行为(例如,用户能否“取消”编辑操作?如何“恢复”原始值?)
如果您的申请表包含某种类型的“应用/保存/等”按钮和“取消”按钮,则您有一些需要执行数据库操作的定义良好的点:

  • 使用数据绑定连接数据模型和GUI
  • “应用”或“保存”按钮处理程序将编辑的实体保存在数据库中
  • 如有必要,“取消”按钮处理程序可以从数据库中重新加载已编辑的实体(放弃编辑)
只要我的两分钱

免责声明:我用上面非常简单的例子来说明我的想法。例如,您不应直接从GUI调用数据库/Hibernate操作(在GUI和数据库之间使用“中间层”,以确保模块化和可测试性)