File tree Expand file tree Collapse file tree 2 files changed +32
-0
lines changed
hibernate-core/src/test/java/org/hibernate/orm/test/query/resultmapping Expand file tree Collapse file tree 2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change 1717import java .util .List ;
1818import java .util .Set ;
1919
20+ import jakarta .persistence .LockModeType ;
2021import org .hibernate .cfg .AvailableSettings ;
2122import org .hibernate .query .named .NamedResultSetMappingMemento ;
2223
@@ -119,6 +120,29 @@ public void testImplicitAttributeMapping(SessionFactoryScope scope) {
119120 );
120121 }
121122
123+ @ Test
124+ public void testImplicitAttributeMappingWithLockMode (SessionFactoryScope scope ) {
125+ scope .inTransaction (
126+ session -> {
127+ // make sure it is in the repository
128+ final NamedResultSetMappingMemento mappingMemento = session .getSessionFactory ()
129+ .getQueryEngine ()
130+ .getNamedObjectRepository ()
131+ .getResultSetMappingMemento (
132+ "entity-lockmode" );
133+ assertThat ( mappingMemento , notNullValue () );
134+
135+ // apply it to a native-query
136+ final String qryString = "select id, name, notes from SimpleEntityWithNamedMappings for update" ;
137+ final List <SimpleEntityWithNamedMappings > results = session
138+ .createNativeQuery ( qryString , "entity-lockmode" )
139+ .list ();
140+ assertThat ( results .size (), is ( 1 ) );
141+ assertThat ( session .getLockMode (results .get (0 )), is (LockModeType .PESSIMISTIC_WRITE ));
142+ }
143+ );
144+ }
145+
122146 @ Test
123147 public void testMixedAttributeMapping (SessionFactoryScope scope ) {
124148 scope .inTransaction (
Original file line number Diff line number Diff line change 1414import jakarta .persistence .FetchType ;
1515import jakarta .persistence .FieldResult ;
1616import jakarta .persistence .Id ;
17+ import jakarta .persistence .LockModeType ;
1718import jakarta .persistence .SqlResultSetMapping ;
1819
1920/**
5758 entityClass = SimpleEntityWithNamedMappings .class
5859 )
5960)
61+ @ SqlResultSetMapping (
62+ name = "entity-lockmode" ,
63+ entities = @ EntityResult (
64+ entityClass = SimpleEntityWithNamedMappings .class ,
65+ lockMode = LockModeType .PESSIMISTIC_WRITE
66+ )
67+ )
6068@ SqlResultSetMapping (
6169 name = "entity-id-notes" ,
6270 entities = @ EntityResult (
You can’t perform that action at this time.
0 commit comments