Hi Scott, To the database the sequence of statements will be as follows. The statements around the read and write of sequence table are an example to put the sequence_table work into context.
tx1 BEGIN SELECT blah SELECT blah UPDATE blah SELECT * from sequence_table; UPDATE sequence_table SET ids=?; INSERT INTO blah UPDATE blah tx1 END tx1 COMMIT The work will not be isolated from the current transaction tx1. Concurrently running transactions will see the changes to sequence_table depending on the isolation level set when the pool is filled. Regards, Jeremy On 09/08/13 18:20, Scott Marlow wrote: > On 08/08/2013 11:21 AM, Jeremy Whiting wrote: >> Hi, >> I am looking for feedback on changes to provide the ability for work >> to be completed in a currently running transaction. For example when a >> TableGenerator or SequenceGenerator is being used for generating unique >> ids. The statements that select then update the db are executed in a >> separate transaction. >> >> There is a jira for this feature. >> >> https://hibernate.atlassian.net/browse/HHH-8429 >> >> Attached to the jira is a diagram. See this link >> https://hibernate.atlassian.net/secure/attachment/19534/hibernate-class-structure-allowing-same-tx-support.png >> >> >> This diagram shows what I currently have implemented. It shows the >> existing classes and the new classes shaded in light blue. The methods >> on a new class IsolationAware show how I've re-jigged most the >> implementation from JtaTransaction to it's new ancestor IsolationAware. >> A new concrete implementation of IsolationDelegate will negotiate the >> work to be executed in the same running transaction. >> The structure splits up the factory/transaction/delegate classes into >> two groups. "same transaction" and "separate transaction". This has only >> been done for JtaTransaction and the same will probably be necessary for >> CMTTransaction as it also uses a separate transaction to complete work. >> That has been left out to keep the diagram simple. > > Your talking about making code changes here but I'm not following > exactly how this new features works. I added my questions about this > to the jira. When you respond there or here, could you please also > include how this new feature depends on isolation level (if it > requires a certain isolation level). > >> >> The option of using aggregation at the point where implementers of >> TransactionImplementor are instantiated has been considered. Before too >> much effort is expended coding I wondered what others thought is the >> preferred way to implement this feature. >> >> Jeremy >> >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev >> > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev