学習71日目:テーブル定義ミスってた。

今日の学習時間。

  • Day:71
  • Today:5h
  • Total:434h

学習内容について。

  • アプリ開発
    • フォロー機能

今日の反省と明日の目標。

フォロー機能のCreateとDestroyは実装して、これからIndexを作成するぞというときに問題が発生。タイムラインのIndexを書いていたのですが、どうも他のテーブルから参照することが出来ないことに気づきました。きちんとJPQLでテーブルの連結が出来なかったわけです。自分ではどうしても問題点を見つけられなくてメンターにチャットで質問してみました。すると、テーブル定義の段階から間違っていたことが判明。外部キーをクラスで指定することがIntegerになっていました。そりゃ参照できないわけだわ。

ということで、当然ながらCreateとDestroyはやり直し。型を変えるだけですが、JSPから送られてくる値はString型なのでそれをInteger.parseIntで変換。その値を元にfindメソッドでレポートのidを取得。そして、そのidから外部テーブルのEmployee型でセットするという、まあ、意外と面倒です。

今日の教訓は、未来の機能拡張計画を元にテーブルを作らないと後で大変な目に合うということ。これでも、アプリ自体の機能が少ないからそこまで時間は取られなかったけど、もし大規模なアプリだったらテーブルが捻れたりして型変換だけでも恐ろしいことですよね。Javaを使って開発しているけど、なんだかんだでそれ以外(テーブル定義やJPQL)に割く時間が多くなっているような気がします。というか、設計さえちゃんとしてればコードを書く時間なんてあっという間です。多分、これ、バリバリのプログラマなら10分ほどで実装できると思います。そうなれるように頑張りたい。

実は今日の問題点もコードを書きながら薄々気づいてはいました。ただ、習作だし何とかなるだろうと思っていたらこのザマですよ。良い勉強になりました。もうモヤモヤもスッキリ取れたので明日はバリバリ、コードを書いていきたいと思います。

閉じる