Ejemplo n.º 1
0
  public static void main(String[] args) {
    HibernateUtils.start();
    HibernateUtils.startTransaction();
    Pessoa p = new Pessoa();
    p.setNome("Pedro");
    HibernateUtils.getSession().save(p);
    p.setNome("Pedro Batista");

    // Nem 'Pedro' nem 'Pedro Batista' será inserido!
    HibernateUtils.rollbackTransaction();
  }
Ejemplo n.º 2
0
 /** delete data by raw SQL */
 public void updateBySQL(String sql) {
   Session session = HibernateUtils.getSession();
   try {
     sql = sql + conditionBuilder.build();
     this.queryBuilder.buildSQLQuery(session, sql).executeUpdate();
   } catch (Throwable e) {
     LOGGER.error("fail to update, sql: {}, list: {}", sql, e);
     throw e;
   } finally {
     HibernateUtils.commit(session); // ensure session is closed
   }
 }
Ejemplo n.º 3
0
 /**
  * method to execute update
  *
  * @param clazz class to update
  * @param setClause such as 'username=:username,password=:password' and so on
  */
 public void update(Class<?> clazz, String setClause) {
   Session session = HibernateUtils.getSession();
   String hql =
       "UPDATE " + clazz.getSimpleName() + " SET " + setClause + " " + conditionBuilder.build();
   try {
     this.queryBuilder.buildQuery(session, hql).executeUpdate();
   } catch (Throwable e) {
     LOGGER.error("fail to update, hql: {}, info: {}", hql, e);
     throw e;
   } finally {
     HibernateUtils.commit(session); // ensure session is closed
   }
 }
Ejemplo n.º 4
0
 public static void inserePessoas() {
   HibernateUtils.startTransaction();
   Pessoa p = null;
   Calendar c = Calendar.getInstance();
   c.add(Calendar.YEAR, -101);
   for (int i = 1; i <= 10; i++) {
     p = new Pessoa();
     p.setNome(Integer.toString(i));
     c.add(Calendar.YEAR, 1);
     p.setNascimento((Calendar) c.clone());
     p.setSexo(i % 2 == 0 ? 'M' : 'F');
     p.setCasado(i % 2 == 0);
     p.setPeso(i);
     HibernateUtils.getSession().save(p);
   }
   HibernateUtils.commitTransaction();
 }
Ejemplo n.º 5
0
 /**
  * Получение следующего вопроса
  *
  * @param questionKind Маска поиска вопроса. Константы - в определении класса <br>
  *     ВНИМАНИЕ! Сейчас - не работает!
  * @return Следующий вопрос или null в случае проблем
  */
 public static Question getNextQuestion(int questionKind) {
   Question res = null;
   //
   Session sess = HibernateUtils.getSession();
   // Делаем хитрую сортировку. Пытаемся искать вопросы через random
   // Вопросы пытаемся искать до 3-х раз...
   int tries = 0;
   Criteria criteria;
   while (tries < 3) {
     double rand = Math.random();
     criteria =
         sess.createCriteria(Question.class)
             .addOrder(Order.asc("rand"))
             .add(Restrictions.eq("played", false))
             .add(Restrictions.ge("rand", rand));
     criteria.setMaxResults(1);
     res = (Question) criteria.uniqueResult();
     if (res == null) {
       tries++;
       rand /= 2;
     } else {
       break;
     }
   }
   if (res == null) {
     // Значит за 3 попытки не смогли найти вопрос - значит просто
     // выберем первый
     criteria =
         sess.createCriteria(Question.class)
             .addOrder(Order.asc("rand"))
             .add(Restrictions.eq("played", false));
     criteria = doFormKindsCriteria(criteria, questionKind);
     criteria.setMaxResults(1);
     res = (Question) criteria.uniqueResult();
   }
   // Отладочное
   // Question res = new Question();
   // res.setChampionship("ЧГК-микст \"Кубок Аленки - 2011\" (Санкт-Петербург)");
   // res.setDate("07-Jun-2011");
   // res.setInfo("Посвящено двухлетию Елены Львовны Орловой. Авторы благодарят за\n"
   // +
   // "тестирование и ценные советы Евгения Рубашкина, Асю Самойлову, Дмитрия\n"
   // +
   // "Карякина, Диану Ильягуеву, Анну Парфёнову, Сергея Коновалова, Ирину\n"
   // +
   // "Медноногову, Игоря Бахарева, Владимира Севриновского, Екатерину и\n"
   // + "Станислава Мереминских, Константина Изъюрова.");
   // res.setRound("1 тур");
   // res.setQuestionNum("Вопрос 1:");
   // res.setQuestion("(pic: 20110432.jpg) (pic: 20000001.gif)\n"
   // + "(aud: 20110001.mp3) (aud: 20050001.mp3)\n"
   // + "Тезка этих девочек, появившаяся на свет в Петербурге, по мнению\n"
   // +
   // "некоторых остряков, является однофамилицей советского политического\n"
   // + "деятеля. Назовите имя и отчество этого деятеля.");
   // res.setAnswer("Надежда Константиновна.");
   // res.setComment("Раздатка изображает обертки шоколадки \"Аленка\" разных лет. Петербургская\n"
   // +
   // "\"Фабрика им. Крупской\" выпускает шоколадки \"Крупская Аленка\".");
   // res.setSource("1. http://www.alenka.ru/museum/\n"
   // + "2. http://www.uralweb.ru/pages/article.4455.html");
   // res.setAuthor("Лев Орлов и Светлана Орлова");
   return res;
 }