Skip to content

Commit 7b8c403

Browse files
committed
clean up ResultSetReturnImpl
Signed-off-by: Gavin King <[email protected]>
1 parent 252bae1 commit 7b8c403

File tree

2 files changed

+58
-52
lines changed

2 files changed

+58
-52
lines changed

hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/ResultSetReturnImpl.java

Lines changed: 54 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
import java.sql.SQLException;
1212
import java.sql.Statement;
1313

14-
import org.hibernate.dialect.Dialect;
1514
import org.hibernate.engine.jdbc.spi.JdbcCoordinator;
1615
import org.hibernate.engine.jdbc.spi.JdbcServices;
1716
import org.hibernate.engine.jdbc.spi.ResultSetReturn;
1817
import org.hibernate.engine.jdbc.spi.SqlExceptionHelper;
1918
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
2019
import org.hibernate.event.spi.EventManager;
2120
import org.hibernate.event.spi.HibernateMonitoringEvent;
21+
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
2222
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
2323

2424
/**
@@ -29,7 +29,6 @@
2929
public class ResultSetReturnImpl implements ResultSetReturn {
3030
private final JdbcCoordinator jdbcCoordinator;
3131

32-
private final Dialect dialect;
3332
private final SqlStatementLogger sqlStatementLogger;
3433
private final SqlExceptionHelper sqlExceptionHelper;
3534

@@ -40,7 +39,6 @@ public class ResultSetReturnImpl implements ResultSetReturn {
4039
*/
4140
public ResultSetReturnImpl(JdbcCoordinator jdbcCoordinator, JdbcServices jdbcServices) {
4241
this.jdbcCoordinator = jdbcCoordinator;
43-
this.dialect = jdbcServices.getDialect();
4442
this.sqlStatementLogger = jdbcServices.getSqlStatementLogger();
4543
this.sqlExceptionHelper = jdbcServices.getSqlExceptionHelper();
4644
}
@@ -54,16 +52,17 @@ public ResultSet extract(PreparedStatement statement, String sql) {
5452
}
5553
try {
5654
final ResultSet rs;
57-
final EventManager eventManager = jdbcCoordinator.getJdbcSessionOwner().getEventManager();
58-
final HibernateMonitoringEvent jdbcPreparedStatementExecutionEvent = eventManager.beginJdbcPreparedStatementExecutionEvent();
55+
final EventManager eventManager = getEventManager();
56+
final HibernateMonitoringEvent executionEvent =
57+
eventManager.beginJdbcPreparedStatementExecutionEvent();
5958
try {
6059
jdbcExecuteStatementStart();
6160
rs = statement.executeQuery();
6261
}
6362
finally {
64-
eventManager.completeJdbcPreparedStatementExecutionEvent( jdbcPreparedStatementExecutionEvent, sql );
63+
eventManager.completeJdbcPreparedStatementExecutionEvent( executionEvent, sql );
6564
jdbcExecuteStatementEnd();
66-
sqlStatementLogger.logSlowQuery( sql, executeStartNanos, context() );
65+
endSlowQueryLogging(sql, executeStartNanos);
6766
}
6867
postExtract( rs, statement );
6968
return rs;
@@ -73,37 +72,43 @@ public ResultSet extract(PreparedStatement statement, String sql) {
7372
}
7473
}
7574

75+
private EventManager getEventManager() {
76+
return jdbcCoordinator.getJdbcSessionOwner().getEventManager();
77+
}
78+
79+
private JdbcEventHandler getEventHandler() {
80+
return jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getEventHandler();
81+
}
82+
7683
private JdbcSessionContext context() {
7784
return jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext();
7885
}
7986

8087
private void jdbcExecuteStatementEnd() {
81-
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getEventHandler().jdbcExecuteStatementEnd();
88+
getEventHandler().jdbcExecuteStatementEnd();
8289
}
8390

8491
private void jdbcExecuteStatementStart() {
85-
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getEventHandler().jdbcExecuteStatementStart();
92+
getEventHandler().jdbcExecuteStatementStart();
8693
}
8794

8895
@Override
8996
public ResultSet extract(Statement statement, String sql) {
9097
sqlStatementLogger.logStatement( sql );
91-
long executeStartNanos = 0;
92-
if ( this.sqlStatementLogger.getLogSlowQuery() > 0 ) {
93-
executeStartNanos = System.nanoTime();
94-
}
98+
long executeStartNanos = beginSlowQueryLogging();
9599
try {
96100
final ResultSet rs;
97-
final EventManager eventManager = jdbcCoordinator.getJdbcSessionOwner().getEventManager();
98-
final HibernateMonitoringEvent jdbcPreparedStatementExecutionEvent = eventManager.beginJdbcPreparedStatementExecutionEvent();
101+
final EventManager eventManager = getEventManager();
102+
final HibernateMonitoringEvent executionEvent =
103+
eventManager.beginJdbcPreparedStatementExecutionEvent();
99104
try {
100105
jdbcExecuteStatementStart();
101106
rs = statement.executeQuery( sql );
102107
}
103108
finally {
104-
eventManager.completeJdbcPreparedStatementExecutionEvent( jdbcPreparedStatementExecutionEvent, sql );
109+
eventManager.completeJdbcPreparedStatementExecutionEvent( executionEvent, sql );
105110
jdbcExecuteStatementEnd();
106-
sqlStatementLogger.logSlowQuery( sql, executeStartNanos, context() );
111+
endSlowQueryLogging( sql, executeStartNanos );
107112
}
108113
postExtract( rs, statement );
109114
return rs;
@@ -116,14 +121,12 @@ public ResultSet extract(Statement statement, String sql) {
116121
@Override
117122
public ResultSet execute(PreparedStatement statement, String sql) {
118123
// sql logged by StatementPreparerImpl
119-
long executeStartNanos = 0;
120-
if ( this.sqlStatementLogger.getLogSlowQuery() > 0 ) {
121-
executeStartNanos = System.nanoTime();
122-
}
124+
long executeStartNanos = beginSlowQueryLogging();
123125
try {
124126
final ResultSet rs;
125-
final EventManager eventManager = jdbcCoordinator.getJdbcSessionOwner().getEventManager();
126-
final HibernateMonitoringEvent jdbcPreparedStatementExecutionEvent = eventManager.beginJdbcPreparedStatementExecutionEvent();
127+
final EventManager eventManager = getEventManager();
128+
final HibernateMonitoringEvent executionEvent =
129+
eventManager.beginJdbcPreparedStatementExecutionEvent();
127130
try {
128131
jdbcExecuteStatementStart();
129132
if ( !statement.execute() ) {
@@ -134,9 +137,9 @@ public ResultSet execute(PreparedStatement statement, String sql) {
134137
rs = statement.getResultSet();
135138
}
136139
finally {
137-
eventManager.completeJdbcPreparedStatementExecutionEvent( jdbcPreparedStatementExecutionEvent, sql );
140+
eventManager.completeJdbcPreparedStatementExecutionEvent( executionEvent, sql );
138141
jdbcExecuteStatementEnd();
139-
sqlStatementLogger.logSlowQuery( sql, executeStartNanos, context() );
142+
endSlowQueryLogging( sql, executeStartNanos );
140143
}
141144
postExtract( rs, statement );
142145
return rs;
@@ -149,14 +152,12 @@ public ResultSet execute(PreparedStatement statement, String sql) {
149152
@Override
150153
public ResultSet execute(Statement statement, String sql) {
151154
sqlStatementLogger.logStatement( sql );
152-
long executeStartNanos = 0;
153-
if ( this.sqlStatementLogger.getLogSlowQuery() > 0 ) {
154-
executeStartNanos = System.nanoTime();
155-
}
155+
long executeStartNanos = beginSlowQueryLogging();
156156
try {
157157
final ResultSet rs;
158-
final EventManager eventManager = jdbcCoordinator.getJdbcSessionOwner().getEventManager();
159-
final HibernateMonitoringEvent jdbcPreparedStatementExecutionEvent = eventManager.beginJdbcPreparedStatementExecutionEvent();
158+
final EventManager eventManager = getEventManager();
159+
final HibernateMonitoringEvent executionEvent =
160+
eventManager.beginJdbcPreparedStatementExecutionEvent();
160161
try {
161162
jdbcExecuteStatementStart();
162163
if ( !statement.execute( sql ) ) {
@@ -167,9 +168,9 @@ public ResultSet execute(Statement statement, String sql) {
167168
rs = statement.getResultSet();
168169
}
169170
finally {
170-
eventManager.completeJdbcPreparedStatementExecutionEvent( jdbcPreparedStatementExecutionEvent, sql );
171+
eventManager.completeJdbcPreparedStatementExecutionEvent( executionEvent, sql );
171172
jdbcExecuteStatementEnd();
172-
sqlStatementLogger.logSlowQuery( sql, executeStartNanos, context() );
173+
endSlowQueryLogging( sql, executeStartNanos );
173174
}
174175
postExtract( rs, statement );
175176
return rs;
@@ -182,13 +183,10 @@ public ResultSet execute(Statement statement, String sql) {
182183
@Override
183184
public int executeUpdate(PreparedStatement statement, String sql) {
184185
assert statement != null;
185-
186-
long executeStartNanos = 0;
187-
if ( this.sqlStatementLogger.getLogSlowQuery() > 0 ) {
188-
executeStartNanos = System.nanoTime();
189-
}
190-
final EventManager eventManager = jdbcCoordinator.getJdbcSessionOwner().getEventManager();
191-
final HibernateMonitoringEvent jdbcPreparedStatementExecutionEvent = eventManager.beginJdbcPreparedStatementExecutionEvent();
186+
long executeStartNanos = beginSlowQueryLogging();
187+
final EventManager eventManager = getEventManager();
188+
final HibernateMonitoringEvent executionEvent =
189+
eventManager.beginJdbcPreparedStatementExecutionEvent();
192190
try {
193191
jdbcExecuteStatementStart();
194192
return statement.executeUpdate();
@@ -197,21 +195,19 @@ public int executeUpdate(PreparedStatement statement, String sql) {
197195
throw sqlExceptionHelper.convert( e, "could not execute statement", sql );
198196
}
199197
finally {
200-
eventManager.completeJdbcPreparedStatementExecutionEvent( jdbcPreparedStatementExecutionEvent, sql );
198+
eventManager.completeJdbcPreparedStatementExecutionEvent( executionEvent, sql );
201199
jdbcExecuteStatementEnd();
202-
sqlStatementLogger.logSlowQuery( sql, executeStartNanos, context() );
200+
endSlowQueryLogging( sql, executeStartNanos );
203201
}
204202
}
205203

206204
@Override
207205
public int executeUpdate(Statement statement, String sql) {
208206
sqlStatementLogger.logStatement( sql );
209-
long executeStartNanos = 0;
210-
if ( this.sqlStatementLogger.getLogSlowQuery() > 0 ) {
211-
executeStartNanos = System.nanoTime();
212-
}
213-
final EventManager eventManager = jdbcCoordinator.getJdbcSessionOwner().getEventManager();
214-
final HibernateMonitoringEvent jdbcPreparedStatementExecutionEvent = eventManager.beginJdbcPreparedStatementExecutionEvent();
207+
long executeStartNanos = beginSlowQueryLogging();
208+
final EventManager eventManager = getEventManager();
209+
final HibernateMonitoringEvent executionEvent =
210+
eventManager.beginJdbcPreparedStatementExecutionEvent();
215211
try {
216212
jdbcExecuteStatementStart();
217213
return statement.executeUpdate( sql );
@@ -220,12 +216,20 @@ public int executeUpdate(Statement statement, String sql) {
220216
throw sqlExceptionHelper.convert( e, "could not execute statement", sql );
221217
}
222218
finally {
223-
eventManager.completeJdbcPreparedStatementExecutionEvent( jdbcPreparedStatementExecutionEvent, sql );
219+
eventManager.completeJdbcPreparedStatementExecutionEvent( executionEvent, sql );
224220
jdbcExecuteStatementEnd();
225-
sqlStatementLogger.logSlowQuery( sql, executeStartNanos, context() );
221+
endSlowQueryLogging( sql, executeStartNanos );
226222
}
227223
}
228224

225+
private void endSlowQueryLogging(String sql, long executeStartNanos) {
226+
sqlStatementLogger.logSlowQuery(sql, executeStartNanos, context() );
227+
}
228+
229+
private long beginSlowQueryLogging() {
230+
return sqlStatementLogger.getLogSlowQuery() > 0 ? System.nanoTime() : 0;
231+
}
232+
229233
private void postExtract(ResultSet rs, Statement st) {
230234
if ( rs != null ) {
231235
jdbcCoordinator.getLogicalConnection().getResourceRegistry().register( rs, st );

hibernate-core/src/main/java/org/hibernate/id/insert/BasicSelectingDelegate.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ public TableMutationBuilder<?> createTableMutationBuilder(
3535

3636
@Override
3737
protected String getSelectSQL() {
38-
if ( persister.getIdentitySelectString() == null && !dialect().getIdentityColumnSupport().supportsInsertSelectIdentity() ) {
38+
final String identitySelectString = persister.getIdentitySelectString();
39+
if ( identitySelectString == null
40+
&& !dialect().getIdentityColumnSupport().supportsInsertSelectIdentity() ) {
3941
throw CoreLogging.messageLogger( BasicSelectingDelegate.class ).nullIdentitySelectString();
4042
}
41-
return persister.getIdentitySelectString();
43+
return identitySelectString;
4244
}
4345
}

0 commit comments

Comments
 (0)