On Fri 01 Jun 2012 07:21:32 AM CDT, Strong Liu wrote:
when using connection pool or datasource, there is not a way to set
the connection level settings for each query, is it?
Sure you can. Psuedo-code:
dialect.setLockTimeout( theConnection );
try {
executeTheStatement();
}
finally {
try {
dialect.resetLockTimeout( theConnection );
}
catch( ... ) {
...
}
}
Like I mentioned, the one thing that concerns me is tracking what the
connection-specific lock timeout might have been originally to properly
reset it in resetLockTimeout. One option is to externalize it:
final int originalTimeoutValue = dialect.setLockTimeout( theConnection
);
try {
executeTheStatement();
}
finally {
try {
dialect.resetLockTimeout( theConnection, originalTimeoutValue );
}
catch( ... ) {
...
}
}
it is a hint as defined in JPA spec, so if we choose this way, I
would
suggest (b)
Just because JPA defines something a particular way does not make it
right. It uses the term "hint" in relation to queries for anything
that is specifically targeting a feature of the underlying vendor as
well, and those are not necessarily hints.
--
steve(a)hibernate.org
http://hibernate.org