Skip to content

Commit 7d2867b

Browse files
stliusebersole
authored andcommitted
HHH-8276 - Integrate LoadPlans into UniqueEntityLoader (PoC)
1 parent 712fb95 commit 7d2867b

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

hibernate-core/src/main/java/org/hibernate/loader/entity/plan/AbstractLoadPlanBasedEntityLoader.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,11 @@ protected List executeLoad(
231231
}
232232
persistenceContext.beforeLoad();
233233
try {
234-
List results;
234+
List results = null;
235235
final String sql = loadQueryDetails.getSqlStatement();
236+
SqlStatementWrapper wrapper = null;
236237
try {
237-
final SqlStatementWrapper wrapper = executeQueryStatement( sql, queryParameters, false, afterLoadActions, session );
238+
wrapper = executeQueryStatement( sql, queryParameters, false, afterLoadActions, session );
238239
results = loadQueryDetails.getResultSetProcessor().extractResults(
239240
wrapper.getResultSet(),
240241
session,
@@ -252,6 +253,12 @@ public int[] getNamedParameterLocations(String name) {
252253
);
253254
}
254255
finally {
256+
if ( wrapper != null ) {
257+
session.getTransactionCoordinator().getJdbcCoordinator().release(
258+
wrapper.getResultSet(),
259+
wrapper.getStatement()
260+
);
261+
}
255262
persistenceContext.afterLoad();
256263
}
257264
persistenceContext.initializeNonLazyCollections();

hibernate-core/src/test/java/org/hibernate/test/legacy/FooBarTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2479,8 +2479,8 @@ public void testNewFlushing() throws Exception {
24792479
public void testPersistCollections() throws Exception {
24802480
Session s = openSession();
24812481
Transaction txn = s.beginTransaction();
2482-
assertEquals( 0, ( (Long) s.createQuery( "select count(*) from Bar" ).iterate().next() ).longValue() );
2483-
assertTrue( s.createQuery( "select count(*) from Bar b" ).iterate().next().equals( new Long(0) ) );
2482+
assertEquals( 0l, s.createQuery( "select count(*) from Bar" ).iterate().next() );
2483+
assertEquals( 0l, s.createQuery( "select count(*) from Bar b" ).iterate().next() );
24842484
assertFalse( s.createQuery( "from Glarch g" ).iterate().hasNext() );
24852485

24862486
Baz baz = new Baz();
@@ -2583,7 +2583,7 @@ public void testPersistCollections() throws Exception {
25832583
baz.setTopGlarchez( new TreeMap() );
25842584
GlarchProxy g = new Glarch();
25852585
s.save(g);
2586-
baz.getTopGlarchez().put( new Character('G'), g );
2586+
baz.getTopGlarchez().put( 'G', g );
25872587
HashMap map = new HashMap();
25882588
map.put(bar, g);
25892589
map.put(bar2, g);
@@ -2633,9 +2633,9 @@ public void testPersistCollections() throws Exception {
26332633
);
26342634
Glarch g2 = new Glarch();
26352635
s.save(g2);
2636-
g = (GlarchProxy) baz.getTopGlarchez().get( new Character('G') );
2637-
baz.getTopGlarchez().put( new Character('H'), g );
2638-
baz.getTopGlarchez().put( new Character('G'), g2 );
2636+
g = (GlarchProxy) baz.getTopGlarchez().get( 'G' );
2637+
baz.getTopGlarchez().put( 'H', g );
2638+
baz.getTopGlarchez().put( 'G', g2 );
26392639
txn.commit();
26402640
s.close();
26412641

@@ -2662,8 +2662,8 @@ public void testPersistCollections() throws Exception {
26622662
baz = (Baz) s3.load(Baz.class, baz.getCode());
26632663
assertEquals( 3, ((Long) s3.createQuery( "select count(*) from Bar" ).iterate().next()).longValue() );
26642664
s3.delete(baz);
2665-
s3.delete( baz.getTopGlarchez().get( Character.valueOf('G') ) );
2666-
s3.delete( baz.getTopGlarchez().get( Character.valueOf('H') ) );
2665+
s3.delete( baz.getTopGlarchez().get( 'G' ) );
2666+
s3.delete( baz.getTopGlarchez().get( 'H' ) );
26672667
int rows = s3.doReturningWork(
26682668
new AbstractReturningWork<Integer>() {
26692669
@Override
@@ -4312,10 +4312,10 @@ public void execute(Connection connection) throws SQLException {
43124312
);
43134313
s.refresh(foo);
43144314
assertEquals( Long.valueOf( -3l ), foo.getLong() );
4315-
assertEquals( LockMode.READ, s.getCurrentLockMode(foo) );
4315+
assertEquals( LockMode.READ, s.getCurrentLockMode( foo ) );
43164316
s.refresh(foo, LockMode.UPGRADE);
43174317
if ( getDialect().supportsOuterJoinForUpdate() ) {
4318-
assertEquals( LockMode.UPGRADE, s.getCurrentLockMode(foo) );
4318+
assertEquals( LockMode.UPGRADE, s.getCurrentLockMode( foo ) );
43194319
}
43204320
s.delete(foo);
43214321
s.getTransaction().commit();

0 commit comments

Comments
 (0)