Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate会话实践_Java_Performance_Hibernate_Hibernate Session - Fatal编程技术网

Java Hibernate会话实践

Java Hibernate会话实践,java,performance,hibernate,hibernate-session,Java,Performance,Hibernate,Hibernate Session,我正在处理一个任务,其中应用程序使用数据库中的一些配置。配置存储在java持久对象中。在服务器启动时,将创建Hibernate会话,并使用惰性加载选项将所有配置数据加载到对象中。并发用户请求使用相同的对象 配置数据的结构: 工作流程: 因为。人是一个休眠实体。java持久化obj 在服务器启动时,通过hibernate get list调用加载person对象。只初始化了一个sessionfactory和会话。道只有一个电话 在后续的服务器请求中,将访问person对象的属性 一般来说,我不确

我正在处理一个任务,其中应用程序使用数据库中的一些配置。配置存储在java持久对象中。在服务器启动时,将创建Hibernate会话,并使用惰性加载选项将所有配置数据加载到对象中。并发用户请求使用相同的对象

配置数据的结构:

工作流程:

因为。人是一个休眠实体。java持久化obj

在服务器启动时,通过hibernate get list调用加载person对象。只初始化了一个sessionfactory和会话。道只有一个电话

在后续的服务器请求中,将访问person对象的属性

一般来说,我不确定这个设置如何处理多个并行服务器请求

1保持会议长时间开放;这会引起什么问题吗? 这是一个好的做法吗?我理解每次CRUD操作后都应该关闭会话。但具体来说,对于上述工作流,什么才是正确的方法。 3多个服务器请求能否访问同一个持久实体?只接电话


寻找一些指导和帮助。与设计和性能相关的任何输入。

那么,您将用户和配置存储在数据库中,但它们永远不会被修改或删除?它们完全是只读的?而且它们太少了,你可以永远记住它们吗?@JB,是的。但它不是用户的信息。是UI上问题的配置数据。每个问题jsp元素都有答案列表,每个答案可能有问题组,也可能没有问题组。问题组指向与该答案相关联的问题列表。大约有1000个问题、250个答案和250个小组。并非所有问题都有答案。@JBNizet我可以在需要时调用db,但我不确定UI的性能。用户在UI上的每一个操作都会触发下一组在UI上可见的问题,并且应该在1~2秒内完成。我个人认为,在服务器启动时加载所有内容并缓存信息是过早的优化,这将弊大于利,并且当您拥有的实体超过少数时,会使事情变得更加复杂。做最简单的事情,避免缓存,每个请求使用一个会话,并在需要时加载所需内容。由于实体太少,加载它们应该非常快。数据库擅长查询和加载数据。它们有自己的缓存。1-2秒是永恒的。从数据库中加载所需内容的时间不应超过几毫秒。@jbnize非常感谢您的想法。我将为db调用实现它。并将相应地更新线程。db调用的另一个问题是,每当任何用户打开UI进行创建、编辑或查看时,都会有大约1000个调用。