[Seasar-user:16703] Re: ロール名とスキーマ名が異なる場合にS2JDBCでException が発生する
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 1月 21日 (水) 16:30:20 JST
小林 (koichik) です.
Date: Wed, 21 Jan 2009 11:46:56 +0900
From: HIDEKI Naita <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16697] ロール名とスキーマ名が異なる場合にS2JDBCでException が発生する
> 先日PostgreSQL-8.3.5 にてスキーマ名とロール名が異なる状態で
> データ挿入を行ったところ以下のような Exception が発生しました。
> (テーブル名は伏せました)
> javax.servlet.ServletException: org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[select currval('XXXX_seq')], Message=[[ESSR0072]SQLで例外(SQL=[select currval('XXXX_seq')], Message=[0], ErrorCode=42P01, SQLState={3})が発生しました : [SQLで例外(Message=[ERROR: relation "XXXX_seq" does not exist], ErrorCode=0, SQLState=42P01)が発生しました。], [ERROR: relation "XXXX_seq" does not exist], ErrorCode=0, SQLState=42P01)が発生しました
>
> 接続にはS2JDBCを利用させていただいております。
>
> select currval する際にスキーマ名を考慮しない
> (デフォルトのスキーマ名にする)ため発生しているということだと思います。
>
> データベースのロール名とスキーマ名が異なる状態になったのは、
> ロール名を変えたかっただけで、実害は無いのですが、
> INSERT時にはスキーマ名を考慮しているのにID生成時にはしていないのはなんでかなぁと
> 思いまして連絡させていただきました。
@Table の schema 要素や catalog 要素で指定した
値が @SequenceGenerator で反映されないということ
でしょうか?
これについては JPA2.0 public review で
@SequenceGenerator に schema/catalog 要素が
追加になっているので,@Table から値を引き継ぐ
ものではないように思われます.
JPA1.0 (EJB3.0というべきか) では @SequeceGenerator に
schema/catalog 要素がないため,現状の S2JDBC で
どうすべきか悩ましいのですが,とりあえずは
schemaName 要素に修飾した名前を指定してみてください.
--
<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 メーリングリストの案内