[Seasar-user:12059] Re: S2JDBCのEntityアノテーションのname属性
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 12月 12日 (水) 18:00:07 JST
小林 (koichik) です.
Date: Wed, 12 Dec 2007 16:46:52 +0900
From: "kiyoshi hosoda" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:12058] Re: S2JDBCのEntityアノテーションのname属性
> たとえばABCMartというエンティティ名だと、@Table(name="ABCMart")の記述が必要に
> なるんですよね。
>
> @Entity
> @Table(name="ABCMart")
> public class ABCMart {
>
> こんな感じですか・・・
テーブル名にキャメル記法を使う文化なら
PersistenceConvention をカスタマイズした方が
よいかと.
標準 SQL では,識別子は大文字・小文字を区別せず,
全て大文字で保持することになっています.
# ダブルクオートで囲んだ区切り識別子を除く.
ABCMart というテーブル名は,RDBMS 内部では
ABCMART として保持され,このテーブルの
メタデータを取得すると,ABCMart ではなく
ABCMART を返すのが標準 SQL としては正しいと
いうことです.
# 現実は実装によって,あるいは同じ実装でも
# 動作する環境や設定によって違いますが.
そのため,識別子にキャメル記法を使うと,
単語の境界が分からなくなる可能性もあります.
よって,識別子にはキャメル記法を使わず,
アンダースコア区切りを使うことが多いだろうと
判断して,PersistenceConvention のデフォルトも
それに合わせて決められています.
そうでないなら (テーブル名にキャメル記法を
使うなら),デフォルトの設定とは想定が違うので,
PersistenceConvention をカスタマイズして
使ってください.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内