Could you please post your tMap editor screenshot on forum? Did you put your condition in tMap expression field?
Thanks for your suggestion. I figured out the issue. One field was defined as integer and other was defined as integer(11). When I changed both to integer(11), it worked.
NO this is not the actually reason. The length of a data type will never be used within the job! Such settings only are used when the job has to create the table for itself.
The reason why your expression is not working is because you have to think about what == actually means in Java!
It means the SAME content of the variable! If you have both values as none nullable integer, then both variables have the same content.
If you have nullable Integer the variables actually contains the addresses of the Integer objects and in most cases both Integer objects are using different addresses within the RAM. The only Java like language dealing with it in a human way is Groovy.
if you compare a nullable Integer with a not nullable int value the Integer value will be converted implicit into the primitive value and now the == works well. If you have both values a not nullable you have to check both for being not null and than use the equals method!
(i1 != null && i1.equals(i2))
this is save and will always work!