半角スペースの悪夢で 2017/01/18

半角スペースの悪夢です。

古いoracleです。
デフォルト値に半角スペース。
null不許可。
DAOの作りによるとは思うのだけど、作りとして、エンテイィティオブジェクトでは、
初期値に半角スペースをもつようになっている。

で、ここでありがちな問題だけど、バグの温床となることが、
画面側で、入力時には半角スペースはもちろん邪魔なので、除去した状態になっている。

入力した値と、エンテイィティオブジェクトの中身を比較したい。


プログラムでとりうる方法

方式1
入力した値が空文字なら、半角スペースを補完して比較する。
方式2
入力した値にたいしてトリムをかけて、あわせてエンテイィティオブジェクトの値にもトリムをかけて比較する。

なぜこうするかというと、値がない状態で比較したいわけなのだけど、入力側は値がない状態は、空文字となっているし、
DB側はデフォルト値は半角スペースという状態だからなのだけど、なにがいいたいかというと、面倒くさいということなのであった。

コーディングの基準がないと、記述する人でまちまちな方式をとるので、こういうのははじめに基準作ったほうが吉。

エンテイィティはエンティティですね。はい。

: