私はgroupというテーブルを持っており、DB2とHSQLDBのhibernateを使用してマップしようとしています。テーブル名グループは予約語であり、HSQLDBで引用符で囲む必要があります。ただし、DB2は引用符で囲まれたテーブル名を好みません。
したがって、このマッピングはHSQLDBでは機能しますが、DB2では機能しません。
@Entity
@Table(name="`group`")
public class Group {
マッピングの結果、DB2で次のエラーが発生します(グループテーブルを含むクエリを作成します)。
原因:com.ibm.db2.jcc.b.SqlException:DB2 SQLエラー:SQLCODE:-204、SQLSTATE:42704、SQLERRMC:SCHEMA_NAME.group com.ibm.db2.jcc.b.hh.c(hh.java:1662)で com.ibm.db2.jcc.b.hh.d(hh.java:1650)で com.ibm.db2.jcc.b.hh.a(hh.java:1219)で com.ibm.db2.jcc.c.db.g(db.java:139)で com.ibm.db2.jcc.c.db.a(db.java:39)で com.ibm.db2.jcc.cta(t.java:34)で com.ibm.db2.jcc.c.sb.f(sb.java:142)で com.ibm.db2.jcc.b.hh.n(hh.java:1190)で com.ibm.db2.jcc.b.ih.eb(ih.java:1997)で com.ibm.db2.jcc.b.ih.d(ih.java:2439)で com.ibm.db2.jcc.b.ih.V(ih.java:492)で com.ibm.db2.jcc.b.ih.executeQuery(ih.java:475)で com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)で org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)で org.hibernate.loader.Loader.getResultSet(Loader.java:1787)で org.hibernate.loader.Loader.doQuery(Loader.java:674)で org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)で org.hibernate.loader.Loader.loadCollection(Loader.java:1994)で ...71もっと
そして、これはDB2では機能しますが、HSQLDBでは機能しません。
@Entity
@Table(name="group")
public class Group {
マッピングすると、HSQLDBで次のエラーが発生します(グループテーブルの作成)。
警告hibernate.ExtendedAnnotatedSessionFactoryBean-失敗したスキーマステートメント:テーブルグループの作成(*詳細は省略*) java.sql.SQLException:予期しないトークン:ステートメント内のGROUP[テーブルグループの作成] org.hsqldb.jdbc.Util.sqlException(不明なソース)で org.hsqldb.jdbc.jdbcStatement.fetchResult(不明なソース)で org.hsqldb.jdbc.jdbcStatement.executeUpdate(不明なソース) org.springframework.orm.hibernate3.LocalSessionFactoryBean.executeSchemaStatement(LocalSessionFactoryBean.java:1000)で org.springframework.orm.hibernate3.LocalSessionFactoryBean.executeSchemaScript(LocalSessionFactoryBean.java:972)で org.springframework.orm.hibernate3.LocalSessionFactoryBean $ 2.doInHibernate(LocalSessionFactoryBean.java:912)で org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:373)で org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:338)で org.springframework.orm.hibernate3.LocalSessionFactoryBean.createDatabaseSchema(LocalSessionFactoryBean.java:906)で ..。
DB2とHSQLDBには、それぞれorg.hibernate.dialect.DB2Dialectとorg.hibernate.dialect.HSQLDialectを使用しています。
両方のデータベースで同じマッピングを同時に機能させるにはどうすればよいですか?