/**
   * Gets Hibernate session.
   *
   * @param tx Cache transaction.
   * @return Session.
   */
  Session session(@Nullable GridCacheTx tx) {
    Session ses;

    if (tx != null) {
      ses = tx.meta(ATTR_SES);

      if (ses == null) {
        ses = sesFactory.openSession();

        ses.beginTransaction();

        // Store session in transaction metadata, so it can be accessed
        // for other operations on the same transaction.
        tx.addMeta(ATTR_SES, ses);

        if (log.isDebugEnabled())
          log.debug("Hibernate session open [ses=" + ses + ", tx=" + tx.xid() + "]");
      }
    } else {
      ses = sesFactory.openSession();

      ses.beginTransaction();
    }

    return ses;
  }
 public static Session currentSession() {
   Session s = (Session) session.get();
   // Open a new Session, if this Thread has none yet
   if (s == null) {
     s = sessionFactory.openSession();
     session.set(s);
   }
   return s;
 }
Esempio n. 3
0
 public static Session openSession() throws HibernateException {
   buildIfNeeded();
   Session session = (Session) threadLocal.get();
   if (session == null || !session.isOpen()) {
     session = sessionFactory.openSession();
     threadLocal.set(session);
   }
   return session;
 }
 public static Session currentSession() throws HibernateException {
   Session s = session.get();
   // 如果该线程还没有Session,则创建一个新的Session
   if (s == null) {
     s = sessionFactory.openSession();
     // 将获得的Session变量存储在ThreadLocal变量session里
     session.set(s);
   }
   return s;
 }
  /** {@inheritDoc} */
  @Override
  public void onSessionStart(CacheStoreSession ses) {
    if (ses.attachment() == null) {
      try {
        Session hibSes = sesFactory.openSession();

        ses.attach(hibSes);

        if (ses.isWithinTransaction()) hibSes.beginTransaction();
      } catch (HibernateException e) {
        throw new CacheWriterException(
            "Failed to start store session [tx=" + ses.transaction() + ']', e);
      }
    }
  }
Esempio n. 6
0
  public static void main(String[] args) {
    Configuration cfg = new Configuration();
    cfg = cfg.configure("hibernate.oracle.cfg.xml");
    SessionFactory factory = cfg.buildSessionFactory();
    Session ses = factory.openSession();

    Bank b = new Bank();
    String name;
    name = "SBI";
    // b.setSid(sid);
    b.setName(name);
    Transaction tx = ses.beginTransaction();
    ses.persist(b);
    tx.commit();
    ses.close();

    System.out.println("Record Inserted!");
    factory.close();
  }
 public static Session getSession() {
   return sessionFactory.openSession();
 }