@@ -180,7 +180,9 @@ public <Y> SqmUpdateStatement<T> set(SingularAttribute<? super T, Y> attribute,
180180
181181 @ Override
182182 public <Y , X extends Y > SqmUpdateStatement <T > set (Path <Y > attribute , X value ) {
183- applyAssignment ( (SqmPath <Y >) attribute , (SqmExpression <? extends Y >) nodeBuilder ().value ( value ) );
183+ final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder ) nodeBuilder ();
184+ final SqmPath <Y > sqmAttribute = (SqmPath <Y >) attribute ;
185+ applyAssignment ( sqmAttribute , nodeBuilder .value ( value , sqmAttribute ) );
184186 return this ;
185187 }
186188
@@ -192,15 +194,15 @@ public <Y> SqmUpdateStatement<T> set(Path<Y> attribute, Expression<? extends Y>
192194
193195 @ Override @ SuppressWarnings ({"rawtypes" , "unchecked" })
194196 public SqmUpdateStatement <T > set (String attributeName , Object value ) {
195- final SqmPath sqmPath = getTarget ().get (attributeName );
197+ final SqmPath sqmPath = getTarget ().get ( attributeName );
196198 final SqmExpression expression ;
197199 if ( value instanceof SqmExpression ) {
198200 expression = (SqmExpression ) value ;
199201 }
200202 else {
201- expression = (SqmExpression ) nodeBuilder ().value ( value );
203+ final SqmCriteriaNodeBuilder nodeBuilder = (SqmCriteriaNodeBuilder ) nodeBuilder ();
204+ expression = nodeBuilder .value ( value , sqmPath );
202205 }
203- assertAssignable ( null , sqmPath , expression , nodeBuilder () );
204206 applyAssignment ( sqmPath , expression );
205207 return this ;
206208 }
0 commit comments