public void runHibernate() { // ############################################################################ Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); Message message = new Message("Hello World"); session.save(message); tx.commit(); session.close(); // ############################################################################ Session secondSession = HibernateUtil.getSessionFactory().openSession(); Transaction secondTransaction = secondSession.beginTransaction(); List messages = secondSession.createQuery("from Message m order by m.text asc").list(); System.out.println(messages.size() + " message(s) found:"); for (Iterator iter = messages.iterator(); iter.hasNext(); ) { Message loadedMsg = (Message) iter.next(); System.out.println(loadedMsg.getText()); } secondTransaction.commit(); secondSession.close(); // ############################################################################ Session thirdSession = HibernateUtil.getSessionFactory().openSession(); Transaction thirdTransaction = thirdSession.beginTransaction(); // message.getId() holds the identifier value of the first message Message loadedMessage = (Message) thirdSession.get(Message.class, message.getId()); loadedMessage.setText("Greetings Earthling"); loadedMessage.setNextMessage(new Message("Take me to your leader (please)")); thirdTransaction.commit(); thirdSession.close(); // ############################################################################ // Final unit of work (just repeat the query) // TODO: You can move this query into the thirdSession before the // commit, makes more sense! Session fourthSession = HibernateUtil.getSessionFactory().openSession(); Transaction fourthTransaction = fourthSession.beginTransaction(); messages = fourthSession.createQuery("from Message m order by m.text asc").list(); System.out.println(messages.size() + " message(s) found:"); for (Iterator iter = messages.iterator(); iter.hasNext(); ) { Message loadedMsg = (Message) iter.next(); System.out.println(loadedMsg.getText()); } fourthTransaction.commit(); fourthSession.close(); // Shutting down the application HibernateUtil.shutdown(); }
/** step through queue and call the real saveOrUpdateInternal method to do the work */ public void run() { List queueList = new ArrayList(queue); for (Iterator i = queueList.iterator(); i.hasNext(); ) { SaveOrUpdateCall call = (SaveOrUpdateCall) i.next(); try { saveOrUpdateInternal( call.baseName, call.moduleName, call.bundleData, call.loc.toString()); } catch (Throwable e) { logger.error("problem saving bundle data:", e); } finally { queue.remove(call); } } }
public Map<String, String> getBundle(String baseName, String moduleName, Locale loc) { Object[] values = new Object[] {baseName, moduleName, loc.toString()}; String sql = "from MessageBundleProperty where baseName = ? and moduleName = ? and locale = ? and value != null"; List<?> results = getHibernateTemplate().find(sql, values); Map<String, String> map = new HashMap<String, String>(); if (results.size() == 0) { logger.debug( "can't find any overridden values for: " + getIndexKeyName(baseName, moduleName, loc.toString())); return map; } for (Iterator<?> i = results.iterator(); i.hasNext(); ) { MessageBundleProperty mbp = (MessageBundleProperty) i.next(); map.put(mbp.getPropertyName(), mbp.getValue()); } return map; }