Entity BeanでCREATE INDEXする
アプリケーションのチューニングをして、DBにインデックスを張りたいとき、SQLを直に実行してしまうと移植時などに忘れてしまうことがあるので、Entity Bean内に書いておきたい。調べると、
@Table(indexes = {@Index(name="customer_idx", columnNames = {"customerCd", "customerKbnCd"}),
@Index(name="customer_idx2", columnNames = {"seikyuDate"})},
appliesTo = "customer")
などと書ける。しかしいくらデプロイしてもインデックスがcreateされない。persistence.xmlの
を
にするとインデックスが作られるが、テーブルごと作り直されてしまうため、データがなくなってしまう。うーむ。