@@ -943,6 +943,10 @@ class CanonicalSpringKotlinTest {
943
943
" where id = :p3"
944
944
)
945
945
946
+ assertThat(updateStatement.parameters).containsEntry(" p1" , " Sam" )
947
+ assertThat(updateStatement.parameters).containsEntry(" p2" , null )
948
+ assertThat(updateStatement.parameters).containsEntry(" p3" , 3 )
949
+
946
950
val rows = template.update(updateStatement)
947
951
948
952
assertThat(rows).isEqualTo(1 )
@@ -957,4 +961,40 @@ class CanonicalSpringKotlinTest {
957
961
assertThat(returnedRecord).isNotNull()
958
962
assertThat(returnedRecord!! .lastName).isNull()
959
963
}
964
+
965
+ @Test
966
+ fun testUpdateWithTypeConverterAndNonNullValue () {
967
+ val record = PersonRecord (id = 3 , firstName = " Sam" , lastName = LastName (" Smith" ))
968
+
969
+ val updateStatement = update(Person ) {
970
+ set(firstName).equalTo(record::firstName)
971
+ set(lastName).equalTo(record::lastName)
972
+ where(id, isEqualTo(record::id))
973
+ }
974
+
975
+ assertThat(updateStatement.updateStatement).isEqualTo(
976
+ " update Person" +
977
+ " set first_name = :p1," +
978
+ " last_name = :p2" +
979
+ " where id = :p3"
980
+ )
981
+
982
+ assertThat(updateStatement.parameters).containsEntry(" p1" , " Sam" )
983
+ assertThat(updateStatement.parameters).containsEntry(" p2" , " Smith" )
984
+ assertThat(updateStatement.parameters).containsEntry(" p3" , 3 )
985
+
986
+ val rows = template.update(updateStatement)
987
+
988
+ assertThat(rows).isEqualTo(1 )
989
+
990
+ val selectStatement = select(
991
+ id, firstName, lastName, birthDate, employed, occupation, addressId
992
+ ).from(Person ) {
993
+ where(id, isEqualTo(record::id))
994
+ }
995
+
996
+ val returnedRecord = template.selectOne(selectStatement, ::personRowMapper)
997
+ assertThat(returnedRecord).isNotNull()
998
+ assertThat(returnedRecord!! .lastName?.name).isEqualTo(" Smith" )
999
+ }
960
1000
}
0 commit comments