連携するデータベースによってサポートされるCMP Entity Beanの機能が異なります。
詳細は、以下の表を参照してください。(Java DBはアプリケーション開発時のみ使用してください)
機能名 | Symfoware | Oracle | Microsoft(R) SQL Server(TM) | PowerGres Plus | Java DB |
---|---|---|---|---|---|
deployment descriptorによるマッピングの定義 | ○ | ○ | ○ | ○ | ○ |
テーブル自動生成機能 | △(注3) | ○ | ○ | ○ | ○ |
スキーマ情報ファイルの自動生成機能 | ○ | ○ | ○ | ○ | ○ |
Javaのデータ型とDBMSのSQLデータ型のマッピング | ○ | ○ | ○ | ○ | ○ |
SQLログ機能 | ○ | ○ | ○ | ○ | ○ |
EJB 1.1のCMP Entity Beanのfinderメソッドの検索条件定義の指定 | ○ | ○ | ○ | ○ | ○ |
CMP2.x EJB QL(注1) | ○ | ○ | ○ | ○ | ○ |
CMPデータのstream転送 (注2) | △(注4) | ○ | ○ | ○ | ○ |
CMPの複数レコードの一括更新(注2) | ○ | ○ | ○ | ○ | ○ |
CMPの一括挿入(注2) | ○ | ○ | ○ | ○ | ○ |
検索時のロック機能 | △(注5) | ○ | ○ | ○ | ○ |
○:サポート
△:一部サポート
×:未サポート
(注1)EJB QLについてはEJB規約を参照してください。また、データベースの仕様により利用できないEJB QLの機能があります。各データベースのマニュアルも合わせて参照してください。
(注2)本機能は自動で切り替わります。
(注3)Symfowareではリレーションを持つテーブルを自動生成する場合、Entity Beanに対応するテーブル、Joinテーブル、外部キーカラムは作成されますが外部キー制約(FOREIGN KEY制約)は作成されません。
(注4)SymfowareではBLOB型のカラムにマッピングしたCMFのデータのみstream転送を行います。
(注5)Symfowareではリレーションを持つテーブルに対して検索時のロック機能は使用できません。
CMP Entity Beanがサポートするデータベースのバージョンについては、「システム設計ガイド」-「ソフトウェア条件」-「アプリケーション実行時に必要なソフトウェア」-「データベース関連(Java EE)」を参照してください。
ただし、CMP Entity BeanでサポートするSymfowareのバージョンは以下となります。
項番 | プラットフォーム | サポートするJDBCドライバ | バージョン・レベル |
---|---|---|---|
1 | Windows(R) | Symfoware Serverクライアント機能 | 10.0.0以降 |
2 | Solaris | Symfoware Serverクライアント機能 | 10.0.0以降 |
3 | RHEL5(x86)/(Intel64) | Symfoware Serverクライアント機能 | 10.0.0以降 |
CMP Entity Beanで定義する永続化フィールド(CMF)のJavaのデータ型とデータベースのSQLデータ型を以下の組み合わせでマッピングした場合、EJBコンテナは自動で以下のAPIを使用してStream転送によってデータやり取りします。
CMFのJavaのデータ型 | SQLデータ型 | EJBコンテナが使用するJDBCドライバのAPI |
---|---|---|
java.lang.String | CLOB | setCharacterStream getCharacterStream |
byte[] | BLOB | setBinaryStream |
Javaのデータ型とデータベースのSQLデータ型の組み合わせについてはJDBCドライバの仕様に依存しますので、使用するJDBCドライバのマニュアルを参照してください。
同一トランザクション内で複数レコードに対する更新、または、複数レコードを挿入する処理を行った場合、EJBコンテナはトランザクション完了時にそれらの処理をひとつのSQL文にまとめて一括で更新・挿入処理を行います。
参照
CMPの複数レコードの一括更新、一括挿入はStream転送を行うデータに対しては行いません。Stream転送については「CMPデータのstream転送」を参照してください。
注意
CMPの複数レコードの一括更新、一括挿入は使用しているJDBCドライバがバッチ更新をサポートしている必要があります。使用するJDBCドライバがバッチ更新をサポートしていない場合、更新または挿入処理ごとにSQL文を発行します。
JDBCドライバのバッチ更新のサポート状況については各データベースのマニュアルを参照してください。