document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1.  
  2. @Stateless
  3. public class TravelAgentBeean implements TravelAgentRemote {
  4.  
  5.     @PersistenceUnit(unitName="JPADB")
  6.     private EntityManagerFactory factory;
  7.      
  8.     // მიშნველობა არ აქ TRANSACTION/EXTENDED-ს
  9.     @PersistenceContext(unitName="JPADB",
  10.         type=PersistenceContextType.EXTENDED)
  11.    
  12.     EntityManager manager;
  13.    
  14.     @Override
  15.     ....
  16.    
  17.      public void flushModeExample(){
  18.      
  19.          /* ილუსტრირება რომ მოვახდინოთ FlushMode-ბზე
  20.           * ენთით მენეჯერი არის შექმნილი დაინჯექტებული
  21.           * ფექტორისგან */
  22.           EntityManager createdManager = factory
  23.             .createEntityManager();
  24.            
  25.           try{
  26.          // შევქმნათ Person
  27.              Person newPerson2 = new Person();
  28.              newPerson2.setId(2);
  29.              newPerson2.setName("მისტერ ბინი");
  30.              newPerson2.setAge(44);
  31.              
  32.          // აქ flush მეთოდი არის AUTO
  33.              createdManager.persist(newPerson2);
  34.              Person person2 = manager.find(Person.class, 2);
  35.              
  36.              if (person2 != null)  {
  37.             // არ არ შევა რადგან
  38.             // null -ს დააბრუნებს find()
  39.              }else{
  40.             //აქ კი შემოვა
  41.              }
  42.  
  43.          // ქუერი გავაკეთოთ, რის შემდეგაც flush მოხდება
  44.              Person person1 = (Person)createdManager
  45.             .createQuery("FROM Person c WHERE c.id = 1")
  46.             .getSingleResult();
  47.              
  48.          // და შემდეგ find           
  49.              person2 = manager.find(Cabin.class, 2);
  50.              if (person2 == null){
  51.                  // აქ კვლავ არ შემოვა, რადგან null აღარაა.
  52.              }else{
  53.                  // კვლავ არ შემოვედით
  54.              }
  55.  
  56.              // ახლა კი ვიმუშავოთ COMMIT-ით.
  57.              createdManager.setFlushMode(FlushModeType.COMMIT);
  58.              
  59.          // დავსეტოთ ახალი მონაცემი
  60.              newPerson2.setAge(99);
  61.  
  62.          // ამასთან გავაკეთოთ ქუერიც
  63.              person1 = (Person)createdManager
  64.             .createQuery("FROM Person c WHERE c.id = 1")
  65.             .getSingleResult();
  66.            
  67.          // რეფრეშიც გავუკეთოთ
  68.              manager.refresh(person2);
  69.              if (person2.getAge() == 99)   {
  70.                  /* ამ ყვლაფრის მერე მაინც არ
  71.               * იქნება 99? არა, არ იქნება, რადგან
  72.               * COMMIT ით ვაკეტებთ. */
  73.              }else{
  74.                  // კვლავ აქ შემოვალთ
  75.              }
  76.  
  77.          // ახლა კი flush გავაკეთოთ!
  78.              createdManager.flush();
  79.  
  80.          // დავარეფრეშოთ
  81.              manager.refresh(person2);
  82.              if (person2.getAge() != 99) {
  83.                 // რათქმაუნდა ამ დროს უკვე
  84.             //მნიშვნელობა 99 ის ტოლია!
  85.              }else{
  86.                  // კვლავ აქ ვართ
  87.              }
  88.             }finally{
  89.             // მოვრჩით საქმეს და დავხუროთ
  90.             createdManager.close();
  91.           }
  92.         }
  93.     }
  94.  
  95. }
');