File tree Expand file tree Collapse file tree 2 files changed +16
-3
lines changed
hibernate-entitymanager/src
main/java/org/hibernate/jpa/criteria/path
test/java/org/hibernate/jpa/test/criteria Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -116,12 +116,14 @@ public String getAlias() {
116
116
117
117
@ Override
118
118
public void prepareAlias (RenderingContext renderingContext ) {
119
- // do nothing...
119
+ // NOTE : we call `original#prepareAlias` here and during render
120
+ // since in some cases only one or the other will be called
121
+ original .prepareAlias ( renderingContext );
120
122
}
121
123
122
124
@ Override
123
125
public String render (RenderingContext renderingContext ) {
124
- original .prepareAlias (renderingContext );
126
+ original .prepareAlias ( renderingContext );
125
127
return getTreatFragment ();
126
128
}
127
129
Original file line number Diff line number Diff line change 17
17
import org .hibernate .jpa .test .metamodel .Thing ;
18
18
import org .hibernate .jpa .test .metamodel .ThingWithQuantity ;
19
19
import org .hibernate .jpa .test .metamodel .ThingWithQuantity_ ;
20
- import org .hibernate .testing .TestForIssue ;
21
20
21
+ import org .hibernate .testing .TestForIssue ;
22
22
import org .junit .Assert ;
23
23
import org .junit .Test ;
24
24
@@ -200,6 +200,17 @@ public void treatRootReturnSuperclass() {
200
200
em .close ();
201
201
}
202
202
203
+ @ Test
204
+ public void testSelectSubclassPropertyFromDowncast () {
205
+ EntityManager em = getOrCreateEntityManager ();
206
+ CriteriaBuilder builder = em .getCriteriaBuilder ();
207
+ CriteriaQuery <Integer > criteria = builder .createQuery ( Integer .class );
208
+ Root <Thing > root = criteria .from ( Thing .class );
209
+ Root <ThingWithQuantity > subroot = builder .treat ( root , ThingWithQuantity .class );
210
+ criteria .select ( subroot .<Integer >get ( "quantity" ) );
211
+ em .createQuery ( criteria ).getResultList ();
212
+ em .close ();
213
+ }
203
214
204
215
205
216
}
You can’t perform that action at this time.
0 commit comments