Doporucil bych ridit transakce deklarativne pomoci anotaci (pripadne konfigurace v XML) mimo perzistentni vrstvu - ta by mela transakce jen propagovat, nikoliv ridit. Nastaveni viz: http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html
Pokud chcete transakce ridit programove, tak je nejlepsi zkombinovat JdbcTemplate a TransactionTemplate. Prime volani transaction manageru je taky mozne, ale ponekud neprehledne, Lukas 2010/2/16 Dusan Zatkovsky <msk.c...@gmail.com> > Ahoj. > > Vzhladom na to, ze vsade na nete narazam na nazor, ze priamo s JDBC pracuje > len hazarder > a mal by sa pouzit aspon spring-jdbc, snazim sa s nim nejak zoznamit. > > V niektorych veciach sa mi vcelku paci a dokaze co-to ulahcit, > ale zapasim s transakciami. V cistom jdbc je to jednoduche: > > Connection c = ...; > > c.execute("begin"); > try { > c.execute... > c.execute... > c.execute... > c.execute... > c.execute("commit"); // alebo rollback > } catch () { > c.execute("rollback"); > } > > S pomocou JdbcTemplate to ale nefunguje: > > org.h2.jdbcx.JdbcDataSource ds = new JdbcDataSource(); > ds.setURL("jdbc:h2:/tmp/test"); > > JdbcTemplate t = new JdbcTemplate(ds); > t.getDataSource().getConnection().setAutoCommit(false); > > > t.execute("drop table if exists data;"); > t.execute("create table if not exists data ( id integer, name > varchar);"); > > t.update("insert into data values ( 1, 'name1');"); > showTable(t); > > t.execute("begin"); > > t.update("insert into data values ( 2, 'name2');"); > showTable(t); > > t.execute("rollback"); > > showTable(t); > > > Vystup: > > [{ID=1, NAME=name1}] > [{ID=1, NAME=name1}, {ID=2, NAME=name2}] > [{ID=1, NAME=name1}, {ID=2, NAME=name2}] > > Rollback bol ignorovany, pravdepodobne aj begin transaction. > Bud som nespravnym sposobom naivne nastavil autocommit, > alebo JdbcTemplate robi nejake dalsie harakiri s connection, ktore moc > nechapem. > > Problem je, ze nikde na webe nemozem najst nejaky JEDNODUCHY navod, > ako na transakcie so spring-jdbc. Nasiel som len kopu otazok bez odpovedi, > pripadne > odpovede s linkom na kopu xml chaosu a stovky riadkov mne nepochopitelneho > kodu: > > http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html > > Poradi niekto? > > Dik > > -- > Dusan >