zamikani tabulek mysql+hibernate
Podlesak Kamil
Kamil.Podlesak na ips-ag.net
Pátek Červen 19 17:03:15 CEST 2009
Prevedte si je na InnoDB.
Obecne vzato muze mit MyISAM v nekterych vyjimecnych pripadech opodstatneni, ale musite naprosto presne vedet co chcete delat a jak.
Kamil Podlesak
> -----Original Message-----
> From: konference-bounces na java.cz [mailto:konference-bounces na java.cz]On
> Behalf Of Pavel Nemec
> Sent: Friday, June 19, 2009 4:36 PM
> To: Java
> Subject: Re: zamikani tabulek mysql+hibernate
>
>
> 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