2012-04-13 6 views
2

この1つのプロジェクトでは、Windowsで開発し、Linuxで展開し、mysqlをデータベースとして使用します。 (私が思う以上)Play Frameworkで小文字のテーブル名を指定する

ため、ファイルシステムの自然の

、テーブル名は、Windows上の影響を受けない、と* nixの上の大文字と小文字が区別され[Ref]

問題は、デフォルトのプレイで/ JPAは、Javaと同じ名前を使用しますテーブルのモデルクラス(したがって、それは大文字になります、例えばUserProfile)。 Windowsのmysqlデータベースをダンプすると、小文字のテーブル名がダンプされます。

大文字と小文字が区別されるため、Linuxでインポートできないということです。

モデルに小文字の名前を常に使用するようにPlay/JPAに指示する方法はありますか? いずれのモデルでも@Table(name="userprofile")アノテーションを設定する必要がありますか?

答えて

4

休止状態に別の命名方法を使用する必要があります。あなたは、単にthisポストでも

hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy 

ルックをapplication.confに次の行を追加し、thisでSO mericano1 @

+0

感謝を問うことができ

http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/cfg/ImprovedNamingStrategy.html

Hibernateで利用できる改善NSがあります;以前に削除された回答(なぜ?!)とこれらのチケット:[#616](https://play.lighthouseapp.com/projects/57987-p​​lay-framework/tickets/616-make-it-possibletotouse -a-custom-namingstrategy-for-jpa-hibernate)、[#769](https://play.lighthouseapp.com/projects/57987/tickets/769-give-programmatic-access-to-the-ejb3configuration-at -configuration-time)これはPlay 1.2で動作しないように見えます*。私は現在1.2.4で動作しています(1.3が出たらすぐに移行します)。私はどのような場合でもこれを自分自身でテストしますが、広告されたとおりに動作することを確認できるように自分で試しましたか? – Stefano

+0

私は他の 'hibernate.ebj。* 'プロパティを使いましたが、うまく動作します。具体的には、私はejbイベントを使用しています。この[監査ログプロジェクト](https://github.com/mericano1/play-auditlog)を見てください。下部に使用セクションがあります。それは私が特に持っているものです – mericano1

関連する問題