zamikani tabulek mysql+hibernate

Pavel Nemec nemecp4 na gmail.com
Pátek Červen 19 16:36:22 CEST 2009


Dne 19. červen 2009 16:25 Podlesak Kamil <Kamil.Podlesak na ips-ag.net> napsal(a):
> Zdravim,
>
> Nejak jsem to v celem vlaknu nenasel, takze se explicitne zeptam:
> Jsou vsechny ty tabulky InnoDB? Pro jistotu to peclive overte, default je MyISAM!

Jsemsi temer jist ze jsou default tj MyISAM.

Posilam kod, ktery pouzivam na testovani konkurencniho pristupu


>
> Kamil Podlesak
>
>

			Session session = HibernateUtil.getSessionFactory().openSession();
			
			Transaction tx = session.beginTransaction();
			List  list = session.createQuery("from ServerMessage").list();
			
			ServerMessage sm = (ServerMessage) list.get(0);
			ServerMessage smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
			session.flush();

// v tuto chvili zkontroluji db, a provedu zmenu na radce se stejnym id, uspesne
			session.save(smLocked);
			session.flush();
			sm = (ServerMessage) list.get(1);
			smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
			logger.info("smazan objekt: "+smLocked.getFlag());
			session.delete(smLocked);
			sm = (ServerMessage) list.get(2);
			smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
			logger.info("smazan objekt: "+smLocked.getFlag());
			session.delete(smLocked);
			sm = (ServerMessage) list.get(3);
			smLocked = (ServerMessage)
session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE);
			logger.info("smazan objekt: "+smLocked.getFlag());
			session.delete(smLocked);
			
			session.flush();

// v tuto chvili vsechny tri objekty jiz nejsou v db !

			tx.rollback();
// rollback nevrati zmeny, v db jsou stale zmazany vsechny objekty
			
			if(session.isOpen())session.close();



Další informace o konferenci Konference