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

update

create

にするとインデックスが作られるが、テーブルごと作り直されてしまうため、データがなくなってしまう。うーむ。