@@ -183,7 +183,9 @@ public <Y> SqmUpdateStatement<T> set(SingularAttribute<? super T, Y> attribute,
183183
184184 @ Override
185185 public <Y , X extends Y > SqmUpdateStatement <T > set (Path <Y > attribute , X value ) {
186- applyAssignment ( (SqmPath <Y >) attribute , (SqmExpression <? extends Y >) nodeBuilder ().value ( value ) );
186+ final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder ) nodeBuilder ();
187+ final SqmPath <Y > sqmAttribute = (SqmPath <Y >) attribute ;
188+ applyAssignment ( sqmAttribute , nodeBuilder .value ( value , sqmAttribute ) );
187189 return this ;
188190 }
189191
@@ -195,15 +197,15 @@ public <Y> SqmUpdateStatement<T> set(Path<Y> attribute, Expression<? extends Y>
195197
196198 @ Override @ SuppressWarnings ({"rawtypes" , "unchecked" })
197199 public SqmUpdateStatement <T > set (String attributeName , Object value ) {
198- final SqmPath sqmPath = getTarget ().get (attributeName );
200+ final SqmPath sqmPath = getTarget ().get ( attributeName );
199201 final SqmExpression expression ;
200202 if ( value instanceof SqmExpression ) {
201203 expression = (SqmExpression ) value ;
202204 }
203205 else {
204- expression = (SqmExpression ) nodeBuilder ().value ( value );
206+ final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder ) nodeBuilder ();
207+ expression = nodeBuilder .value ( value , sqmPath );
205208 }
206- assertAssignable ( null , sqmPath , expression , nodeBuilder ().getSessionFactory () );
207209 applyAssignment ( sqmPath , expression );
208210 return this ;
209211 }
0 commit comments