Java 桌面应用程序-Hibernate(使用JPA EntityManager)/Spring/Swing驱动的扩展会话
我在为我正在开发的Swing两层JavaSE桌面应用程序扩展JPA持久性上下文(一种“对话中的开放会话”模式)时遇到问题 这对我的好处是:Java 桌面应用程序-Hibernate(使用JPA EntityManager)/Spring/Swing驱动的扩展会话,java,spring,swing,hibernate,jpa,Java,Spring,Swing,Hibernate,Jpa,我在为我正在开发的Swing两层JavaSE桌面应用程序扩展JPA持久性上下文(一种“对话中的开放会话”模式)时遇到问题 这对我的好处是: 延迟加载对象到GUI 允许用户编辑/使用对象,而无需从数据库重新加载对象-以防其他用户进行编辑。这将由Hibernate的版本控制进行检查,如果持久性上下文持续“对话”的持续时间,则会抛出错误 有很多详细的web使用方法,但几乎没有任何桌面使用方法 有人能推荐一种合适的方法吗?当每个对话框窗口都有自己的hibernate会话时,我使用“在窗口中打开会话”
- 延迟加载对象到GUI
- 允许用户编辑/使用对象,而无需从数据库重新加载对象-以防其他用户进行编辑。这将由Hibernate的版本控制进行检查,如果持久性上下文持续“对话”的持续时间,则会抛出错误
有人能推荐一种合适的方法吗?当每个对话框窗口都有自己的hibernate会话时,我使用“在窗口中打开会话”模式。那是很久以前的事了,使用Hibernate2.x,效果不是很好。特别是当抛出一些异常时。会话中的所有hibernate对象都变得无效,您必须修复异常原因并重复所有更改。这就是我所认为的方法。我可以问一下,从那以后你是否改变了你的方法吗?不幸的是,我是我的第一个也是最后一个桌面应用程序。但它工作得相当快,可能是因为我们没有那么多用户,每个用户需要一个到DB的连接,所以如果有100-200个用户,这种方法可能是危险的。非常痛苦的是,我们通过编写合并窗口来处理它,在这里向用户显示他和服务器版本之间的差异。