/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 6 - 2 0 2 1 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġexamples . kotlin . spring . canonical Ċ Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . person Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . address Id Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . birth Date Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . employ ed Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . firstName Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . id Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . lastName Ċ import Ġexamples . kotlin . spring . canonical . Person Dynamic Sql Support . occup ation Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . isEqualTo Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . is GreaterThan Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . is GreaterThan OrEqualTo Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . isIn Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . is LessThan Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . is LessThan OrEqualTo Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . isNot EqualTo Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . isNot In Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . max Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . elements . min Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . spring . select Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . spring . select List Ċ import Ġorg . mybatis . dynamic . sql . util . kotlin . spring . select One Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . jdbc . core . named param . Named Parameter Jdbc Template Ċ import Ġorg . springframework . test . context . junit . jupiter . Spring JUnit Config Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ Ċ @ Suppress (" Large Class ", Ġ" Max Line Length ") Ċ @ Spring JUnit Config ( classes Ġ= Ġ[ Spring Configuration :: class ]) Ċ @ Transactional Ċ class ĠKotlin Conditions Test Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtemplate : ĠNamed Parameter Jdbc Template ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Select EqualTo Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( id , Ġis EqualTo ( 6 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ= Ġ: p 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġtemplate . select One ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( row ). isNotNull ĊĠĠĠĠĠĠĠ Ġwith ( row !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" B amm ĠB amm ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" R ubble ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isFalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Select EqualTo Value With Record () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRecord ( val Ġid : ĠInt ) ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= ĠRecord ( 6 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( id , Ġis EqualTo ( r . id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ= Ġ: p 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġtemplate . select One ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( row ). isNotNull ĊĠĠĠĠĠĠĠ Ġwith ( row !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" B amm ĠB amm ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" R ubble ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isFalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Select Equal Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis EqualTo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( max ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ= Ġ( select Ġmax ( id ) Ġfrom ĠPerson )" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġtemplate . select One ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( row ). isNotNull ĊĠĠĠĠĠĠĠ Ġwith ( row !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" B amm ĠB amm ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" R ubble ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isFalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Select NotEqual Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Not EqualTo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( max ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ<> Ġ( select Ġmax ( id ) Ġfrom ĠPerson ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 5 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" F red ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" Fl int stone ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Br ont os aur us ĠOperator ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest In Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisIn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( lastName , Ġis EqualTo ( LastName (" R ubble "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġin Ġ( select Ġid Ġfrom ĠPerson Ġwhere Ġlast _ name Ġ= Ġ: p 1 ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . parameters ). contains Entry (" p 1 ", Ġ" R ubble ") ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 3 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" B arn ey ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" R ubble ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Br ont os aur us ĠOperator ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest NotIn Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis NotIn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Distinct ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( lastName , Ġis EqualTo ( LastName (" R ubble "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġnot Ġin Ġ( select Ġdistinct Ġid Ġfrom ĠPerson Ġwhere Ġlast _ name Ġ= Ġ: p 1 ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . parameters ). contains Entry (" p 1 ", Ġ" R ubble ") ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 3 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" F red ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" Fl int stone ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Br ont os aur us ĠOperator ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest LessThan Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis LessThan Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( max ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ< Ġ( select Ġmax ( id ) Ġfrom ĠPerson ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 5 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" F red ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" Fl int stone ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Br ont os aur us ĠOperator ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest LessThan OrEqual Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis LessThan OrEqualTo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( max ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ<= Ġ( select Ġmax ( id ) Ġfrom ĠPerson ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 6 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" F red ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" Fl int stone ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Br ont os aur us ĠOperator ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest GreaterThan Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis GreaterThan Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( min ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ> Ġ( select Ġmin ( id ) Ġfrom ĠPerson ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 5 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" W il ma ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" Fl int stone ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Account ant ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest GreaterThan OrEqual Sub Query () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Statement Ġ= Ġselect ( id , ĠfirstName , ĠlastName , Ġbirth Date , Ġemploy ed , Ġoccup ation , Ġaddress Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis GreaterThan OrEqualTo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect ( min ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( select Statement . select Statement ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" select Ġid , Ġfirst _ name , Ġlast _ name , Ġbirth _ date , Ġemploy ed , Ġoccup ation , Ġaddress _ id Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" from ĠPerson Ġwhere Ġid Ġ>= Ġ( select Ġmin ( id ) Ġfrom ĠPerson ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" order Ġby Ġid " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtemplate . select List ( select Statement , Ġperson Row Mapper ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( rows ). has Size ( 6 ) ĊĠĠĠĠĠĠĠ Ġwith ( rows [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( firstName ). isEqualTo (" F red ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( lastName !!. name ). isEqualTo (" Fl int stone ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( birth Date ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employ ed ). isTrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( occup ation ). isEqualTo (" Br ont os aur us ĠOperator ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( address Id ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ