3 Replies Latest reply: Jun 7, 2012 9:06 PM by 793912 RSS

    Multiple applications edit single database but JPA does not reflect changes

    793912
      Hello all,

      I have a very trouble some problem. I have a database which is access by several applications. And in one application(web) I use JPA. Everything worked fine so far.

      But recently I had to create another application(standalone) which access to same database and do edit/updates.

      My problem is, these updates does not reflect in web(JPA) application. I use a named query for search some records. Even updates are there jpa does not show these updates until I restart the glassfish server.

      I have tried many suggestions like cache clearance and nothing helped me. So I am post this question.

      My code
      // Search operation looks like following
      EntityManager entityManager = Persistence.createEntityManagerFactory("ModelPU");
              
      EntityTransaction entityTransaction = entityManager.getTransaction();
      
      entityTransaction.begin();
      Query queryPatientNotifications = entityManager.createNamedQuery("Course.getAllNotifications");
      
      queryPatientNotifications.setParameter("cId", id);
      
      Course course = (Course) queryPatientNotifications.getResultList().get(0);
                  
      List<CourseSMSNotification> allNotifications = course.getNotifications();
      
      System.out.println("Not Size :" + allNotifications.size()); // PROBLEM : print 0 even there are records in database
      Persistance unit
      <?xml version="1.0" encoding="UTF-8"?>
      <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
        <persistence-unit name="CosmicTBModelPU" transaction-type="RESOURCE_LOCAL">
          <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
          <class>org.cosmic.tb.mode.entity.TBCourse</class>
          <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/DB_TB"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
          </properties>
        </persistence-unit>
      </persistence>
      Can some one please help me with this?

      Thank you
      ~deshan