38
38
* @author Jens Schauder
39
39
* @author Oliver Gierke
40
40
* @author Mark Paluch
41
+ * @author Maciej Walkowiak
41
42
*/
42
43
public class EntityRowMapper <T > implements RowMapper <T > {
43
44
@@ -76,7 +77,7 @@ public T mapRow(ResultSet resultSet, int rowNumber) {
76
77
idValue = readFrom (resultSet , idProperty , prefix );
77
78
}
78
79
79
- T result = createInstance (entity , resultSet , idValue );
80
+ T result = createInstance (entity , resultSet , idValue , prefix );
80
81
81
82
return entity .requiresPropertyPopulation () //
82
83
? populateProperties (result , resultSet ) //
@@ -97,21 +98,21 @@ private T populateProperties(T result, ResultSet resultSet) {
97
98
continue ;
98
99
}
99
100
100
- propertyAccessor .setProperty (property , readOrLoadProperty (resultSet , id , property ));
101
+ propertyAccessor .setProperty (property , readOrLoadProperty (resultSet , id , property , "" ));
101
102
}
102
103
103
104
return propertyAccessor .getBean ();
104
105
}
105
106
106
107
@ Nullable
107
- private Object readOrLoadProperty (ResultSet resultSet , @ Nullable Object id , RelationalPersistentProperty property ) {
108
+ private Object readOrLoadProperty (ResultSet resultSet , @ Nullable Object id , RelationalPersistentProperty property , String prefix ) {
108
109
109
110
if (property .isCollectionLike () && id != null ) {
110
111
return accessStrategy .findAllByProperty (id , property );
111
112
} else if (property .isMap () && id != null ) {
112
113
return ITERABLE_OF_ENTRY_TO_MAP_CONVERTER .convert (accessStrategy .findAllByProperty (id , property ));
113
114
} else {
114
- return readFrom (resultSet , property , "" );
115
+ return readFrom (resultSet , property , prefix );
115
116
}
116
117
}
117
118
@@ -159,7 +160,7 @@ private <S> S readEntityFrom(ResultSet rs, RelationalPersistentProperty property
159
160
return null ;
160
161
}
161
162
162
- S instance = createInstance (entity , rs , idValue );
163
+ S instance = createInstance (entity , rs , idValue , prefix );
163
164
164
165
PersistentPropertyAccessor <S > accessor = converter .getPropertyAccessor (entity , instance );
165
166
@@ -180,7 +181,7 @@ private Object getObjectFromResultSet(ResultSet rs, String backreferenceName) {
180
181
}
181
182
}
182
183
183
- private <S > S createInstance (RelationalPersistentEntity <S > entity , ResultSet rs , @ Nullable Object idValue ) {
184
+ private <S > S createInstance (RelationalPersistentEntity <S > entity , ResultSet rs , @ Nullable Object idValue , String prefix ) {
184
185
185
186
return converter .createInstance (entity , parameter -> {
186
187
@@ -190,7 +191,7 @@ private <S> S createInstance(RelationalPersistentEntity<S> entity, ResultSet rs,
190
191
191
192
RelationalPersistentProperty property = entity .getRequiredPersistentProperty (parameterName );
192
193
193
- return readOrLoadProperty (rs , idValue , property );
194
+ return readOrLoadProperty (rs , idValue , property , prefix );
194
195
});
195
196
}
196
197
}
0 commit comments