本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。
既にご存じの方も多いかと思いますが、NHibernate 3.0.0(アルファ版)が7月下旬に発表されました。この新リリース用のバイナリコードとソースコードはsourceforge.netからダウンロードできます。NHibernate 3.0.0は、LINQをサポートし、下記の追加機能を含んでいます。
多数のバグ修正と技術改良に加え、強く型付けされた新しいクライテリアAPIであるQueryOver、カラムの遅延読み込み、生成されたSQLをエイリアスで区切る機能、そしてIStatelessSessionにおけるDetachedCriteriaのサポートなどが提供されている。また新しいリリースでは、LINQのサポートが拡張され、これにより以前のプロバイダのHQLに関する制限が克服されている。
SQL Anywhereのユーザーにとっては残念なことに、ASEまたはSQL Anywhereの方言に関する実質的な変更は、今回のディストリビューションには間に合いませんでした。したがって、SQL AnywhereでNHibernateを利用しているユーザーの皆さんは、私が以前掲載したSQL Anywhere 11用またはSQL Anywhere 12用のNhibernate方言の利用を検討してみてください。
NHibernate 3.0.0アルファ版のSQL Anywhere方言は、2.1.0のディストリビューションに対応するバージョンとは以下の点で異なります。
- SybaseASA9Dialect.cs-変更なし
- SybaseASA10Dialect.cs-変更なし
-
SybaseAnywhereDialect.cs-RegisterKeyword("top")によりSQLの
TOP
キーワードを追加
NHibernate 3.0.0のSybase ASE方言は、2.1.0に対応するバージョンとは以下の点で異なります。
-
SybaseDialect.cs-RegisterKeyword("top")によりSQLの
TOP
キーワードを追加 - SybaseAdoNet12Dialect.cs-同様にRegisterKeyword("top")を追加
- Sybase11Dialect.cs-変更なし
結局のところ、3.0.0用のSybase NHibernate方言で変更があったのは、TOP
キーワードが認識できるようになったという点だけのようです。この機能はASE 15.0でサポートされています(ただしASEはSTART ATをサポートしていません)。これは実に残念です。なぜならこれらの方言は、以前私がこのフォーラムで指摘した重大な欠陥を未だに抱えているからです。
今し方、私は偶然にもAnne Epstein氏が6月30日に投稿したこの記事を目にしました。ここではNHibernate(さらに言うならHibernate)を、複合キーを持つテーブルで使用する際のいくつかの問題点が挙げられています。