@@ -1406,6 +1406,46 @@ void testUpdate() {
1406
1406
}
1407
1407
}
1408
1408
1409
+ @ Test
1410
+ void testUpdateValueOrNullWithValue () {
1411
+ try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
1412
+ AnimalDataMapper mapper = sqlSession .getMapper (AnimalDataMapper .class );
1413
+ AnimalData record = new AnimalData ();
1414
+ record .setBodyWeight (2.6 );
1415
+
1416
+ UpdateStatementProvider updateStatement = update (animalData )
1417
+ .set (animalName ).equalToOrNull ("fred" )
1418
+ .where (id , isEqualTo (1 ))
1419
+ .build ()
1420
+ .render (RenderingStrategies .MYBATIS3 );
1421
+
1422
+ assertThat (updateStatement .getUpdateStatement ()).isEqualTo (
1423
+ "update AnimalData set animal_name = #{parameters.p1,jdbcType=VARCHAR} where id = #{parameters.p2,jdbcType=INTEGER}" );
1424
+ int rows = mapper .update (updateStatement );
1425
+ assertThat (rows ).isEqualTo (1 );
1426
+ }
1427
+ }
1428
+
1429
+ @ Test
1430
+ void testUpdateValueOrNullWithNull () {
1431
+ try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
1432
+ AnimalDataMapper mapper = sqlSession .getMapper (AnimalDataMapper .class );
1433
+ AnimalData record = new AnimalData ();
1434
+ record .setBodyWeight (2.6 );
1435
+
1436
+ UpdateStatementProvider updateStatement = update (animalData )
1437
+ .set (animalName ).equalToOrNull ((String ) null )
1438
+ .where (id , isEqualTo (1 ))
1439
+ .build ()
1440
+ .render (RenderingStrategies .MYBATIS3 );
1441
+
1442
+ assertThat (updateStatement .getUpdateStatement ()).isEqualTo (
1443
+ "update AnimalData set animal_name = null where id = #{parameters.p1,jdbcType=INTEGER}" );
1444
+ int rows = mapper .update (updateStatement );
1445
+ assertThat (rows ).isEqualTo (1 );
1446
+ }
1447
+ }
1448
+
1409
1449
@ Test
1410
1450
void testInsert () {
1411
1451
try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
@@ -1994,6 +2034,61 @@ void testGeneralInsert() {
1994
2034
}
1995
2035
}
1996
2036
2037
+ @ Test
2038
+ void testGeneralInsertValueOrNullWithValue () {
2039
+ try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
2040
+ AnimalDataMapper mapper = sqlSession .getMapper (AnimalDataMapper .class );
2041
+
2042
+ GeneralInsertStatementProvider insertStatement = insertInto (animalData )
2043
+ .set (id ).toValue (101 )
2044
+ .set (animalName ).toValueOrNull ("Fred" )
2045
+ .set (brainWeight ).toConstant ("2.2" )
2046
+ .set (bodyWeight ).toValue (4.5 )
2047
+ .build ()
2048
+ .render (RenderingStrategies .MYBATIS3 );
2049
+
2050
+ String expected = "insert into AnimalData (id, animal_name, brain_weight, body_weight) "
2051
+ + "values (#{parameters.p1,jdbcType=INTEGER}, #{parameters.p2,jdbcType=VARCHAR}, 2.2, "
2052
+ + "#{parameters.p3,jdbcType=DOUBLE})" ;
2053
+
2054
+ assertThat (insertStatement .getInsertStatement ()).isEqualTo (expected );
2055
+ assertThat (insertStatement .getParameters ()).hasSize (3 );
2056
+ assertThat (insertStatement .getParameters ()).containsEntry ("p1" , 101 );
2057
+ assertThat (insertStatement .getParameters ()).containsEntry ("p2" , "Fred" );
2058
+ assertThat (insertStatement .getParameters ()).containsEntry ("p3" , 4.5 );
2059
+
2060
+ int rows = mapper .generalInsert (insertStatement );
2061
+ assertThat (rows ).isEqualTo (1 );
2062
+ }
2063
+ }
2064
+
2065
+ @ Test
2066
+ void testGeneralInsertValueOrNullWithNull () {
2067
+ try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
2068
+ AnimalDataMapper mapper = sqlSession .getMapper (AnimalDataMapper .class );
2069
+
2070
+ GeneralInsertStatementProvider insertStatement = insertInto (animalData )
2071
+ .set (id ).toValue (101 )
2072
+ .set (animalName ).toValueOrNull ((String ) null )
2073
+ .set (brainWeight ).toConstant ("2.2" )
2074
+ .set (bodyWeight ).toValue (4.5 )
2075
+ .build ()
2076
+ .render (RenderingStrategies .MYBATIS3 );
2077
+
2078
+ String expected = "insert into AnimalData (id, animal_name, brain_weight, body_weight) "
2079
+ + "values (#{parameters.p1,jdbcType=INTEGER}, null, 2.2, "
2080
+ + "#{parameters.p2,jdbcType=DOUBLE})" ;
2081
+
2082
+ assertThat (insertStatement .getInsertStatement ()).isEqualTo (expected );
2083
+ assertThat (insertStatement .getParameters ()).hasSize (2 );
2084
+ assertThat (insertStatement .getParameters ()).containsEntry ("p1" , 101 );
2085
+ assertThat (insertStatement .getParameters ()).containsEntry ("p2" , 4.5 );
2086
+
2087
+ int rows = mapper .generalInsert (insertStatement );
2088
+ assertThat (rows ).isEqualTo (1 );
2089
+ }
2090
+ }
2091
+
1997
2092
@ Test
1998
2093
void testUpdateWithSelect () {
1999
2094
try (SqlSession sqlSession = sqlSessionFactory .openSession ()) {
0 commit comments