休眠不读取最新数据

时间:2019-01-19 11:12:36

标签: java hibernate

我正在尝试使用以下架构构建电子商务应用程序 1.数据库服务器Mysql-用于存储产品,客户信息,订单等。 2. Web服务器(Glassfish 4.1.1)-为了向客户端/ Android应用提供数据,它使用Hibernate 4.3从数据库中获取数据 3.使用swings开发的独立Java客户端-要添加产品,客户信息和处理订单,它将使用jdbc使用原始sql命令将数据推送到数据库中

enter image description here

Webserver可以使用休眠模式读取数据,但是如果客户端通过后端进行任何插入/更新操作,则直到重新初始化会话工厂时,Webserver才会显示更新的数据

有没有做它而无需重新初始化

下面是我的int和hibernate.cfg代码

Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();            
sessionFactory = new Configuration().configure().buildSessionFactory(serviceRegistry);

Hibernate.cfg

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ order_management?zeroDateTimeBehavior=convertToNull</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">abc123</property>

2 个答案:

答案 0 :(得分:0)

Hibernate使用多种类型的缓存,并且并非一直都从数据库中直接读取数据。您可以了解有关此here的更多信息。

答案 1 :(得分:0)

休眠缓存是Web服务器中的本地缓存。 Web应用程序读取数据时,数据将缓存在本地。

在您的情况下,您需要像redis这样的分布式缓存,您的Web应用程序和Java客户端都可以在其中共享数据