Třeba takto:
public Data mojeMetoda(final int prvniParametr, final Long druhy) {
final Data result = new Data();
SessionRes.lock(new Action() {
void run(Session session) {
System.out.println(prvniParametr);
System.out.println(druhy);
result.necoNastav(10);
}});
return result;
}
Petr Burdik píše v Pá 19. 01. 2007 v 11:13 +0100:
> Pockat,
> final musi byt SessionRes, nebo ktera? Do tohoto konceptu mi to nejak
> nesedi.
>
> Pet
>
> On Fri, 19 Jan 2007 11:04:09 +0100, Petr Ferschmann
> <[EMAIL PROTECTED]> wrote:
>
> > Musí být final.
> >
> > Petr Burdik píše v Pá 19. 01. 2007 v 08:35 +0100:
> >
> >> Ahoj,
> >> ja budu mit jeste jeden dotaz. Uz to mam pripraveno ale stejne. Jakym
> >> zpusobem dostanes do tohoto kodu:
> >> > SessionRes.lock(new Action() {
> >> > void run(Session session) {
> >> >
> >> >
> >> > ...
> >> >
> >> > }});
> >>
> >> promenne ktere jsou deklarovane v ramci metody ktera to vola?
> >>
> >> U write to je vice nez dulezite a u readu taky.
> >>
> >> Pet
> >>
> >>
> >> On Thu, 18 Jan 2007 11:00:52 +0100, Petr Ferschmann
> >> <[EMAIL PROTECTED]> wrote:
> >>
> >> > Zdravím,
> >> >
> >> >
> >> >
> >> > Jen k vašemu problému. IMHO jde řešit kromě JDBC template i pomocí
> >> > "správce zdroje".
> >> >
> >> > Třeba takto:
> >> > SessionRes.lock(new Action() {
> >> > void run(Session session) {
> >> >
> >> >
> >> > ...
> >> >
> >> > }});
> >> >
> >> >
> >> > Třídy:
> >> >
> >> > public interface Action {
> >> > public void run(Session session);
> >> > }
> >> >
> >> > public class SessionRes {
> >> > public static void lock(Action act) {
> >> >
> >> > /* získej zdroj */
> >> > if(sessionFactory==null){
> >> > sessionFactory = (SessionFactory)
> >> > AppContextUtil.getApplicationContext().getBean("hibernateFactory");
> >> > }
> >> > Session session =
> >> > SessionFactoryUtils.doGetSession(sessionFactory,true);
> >> > try {
> >> > act.run(session);
> >> >
> >> >
> >> > /* uvolnění zdroje */
> >> > } finally{
> >> >
> >> SessionFactoryUtils.releaseSession(session,sessionFactory);
> >> > }
> >> >
> >> > }
> >> > }
> >> >
> >> >
> >> > Případně více:
> >> > http://blog.softeu.cz/automaticka-sprava-zdroju/
> >> >
> >> >
> >> > S pozdravem
> >> >
> >> > Petr Ferschmann
> >> >
> >> > Petr Burdik píše v Čt 18. 01. 2007 v 10:34 +0100:
> >> >
> >> >> Sveho casu jsme to tu propirali :)
> >> >>
> >> >> Vysel z toho podobny paskvil jako tento ( v naznaku )
> >> >>
> >> >> try {
> >> >> sql dotaz
> >> >> } catch (Exception ex) {
> >> >>
> >> >> } finally {
> >> >> try {
> >> >> close connection
> >> >> } catch (Exception ex) {
> >> >>
> >> >> } finally {
> >> >> tusim ze jeste jednou close
> >> >> }
> >> >>
> >> >> }
> >> >>
> >> >> Presne takto to nepouzivam, nemam ten vnoreny try/catch blok, ale
> >> >> situace
> >> >> me donutila ze tam asi bude muset byt. ale nebavi me to psat porad
> >> >> dokola
> >> >> tak hledam zpusob jak si praci ulehcit :) a napadlo me aspektove
> >> >> programovani. Pokud najdete lepsi zpusob budu rad. Ale je to fakt
> >> pruda
> >> >> t
> >> >> tady tusim jedno z mist kde to pouzit.
> >> >>
> >> >> Pet
> >> >>
> >> >>
> >> >>
> >> >> On Thu, 18 Jan 2007 10:17:53 +0100, Roman Pichlik
> >> >> <[EMAIL PROTECTED]> wrote:
> >> >>
> >> >> >> aktualne jsem hooodne nastvany na zkusob jak se pracuje s obsluhou
> >> >> >> connection i u tahani dat pres hibernate. asi vime vsichni o co
> >> jde
> >> >> :).
> >> >> >
> >> >> > tak to teda netusim :), muzete se podelit?
> >> >> >
> >> >>
> >> >>
> >> >>
> >> >
> >>
> >>
> >>
> >
>
>
>
--
Petr Ferschmann
SoftEU s.r.o.
-----------------------------------
Sady Petatricatniku 31
301 00 Plzen
Czech Republic
-----------------------------------
Phone: +420 373 729 300
Fax: +420 373 729 301
Cell: +420 775 638 008
E-mail: [EMAIL PROTECTED]