JPA機能を使用する場合、以下に注意してください。
EJB 2.0以降のCMP Entity Bean間のrelationshipの一貫性は、EJBコンテナで自動的に管理されますが、Java Persistence Entity間のrelationshipの一貫性は、自動的に管理されません。例えば、双方向のrelationshipでは、一方でrelationshipフィールドを更新すると、もう一方のEntityのrelationshipフィールドもアプリケーションが更新する必要があります。
Entityは、Java EEコンポーネントではないので、Entity内でDependency Injectionは使用できません。
なお、Interstage永続性プロバイダを使用する場合、以下にも注意してください。
サポートされるデータベースは、「1.1.3 データベース関連」を参照してください。
Entityの永続化フィールドについては、Java Persistence API規約による使用可能なJava型以外は動作が保証できません。
Entity間の継続関係のマッピング方針については、SINGLE_TABLEオプションまたはJOINEDオプションは使用できますが、TABLE_PER_CLASSオプションは使用できません。
DBMSの制限により使用できない機能があります。使用できない機能を使おうとすると、DBMSの仕様による例外メッセージと発行されたSQL文が出力されます。DBMSのマニュアルを参照し、必要に応じてアプリケーションを修正してください。以下に、DBMSの制限により使用できない機能をいくつか記述します。
使用するDBMSがSymfowareの場合、以下に注意してください。
SQRT関数、MOD関数は使用できません。
LOCATE関数の第3引数は指定できません。
LOCATE関数に入力パラメタを複数指定することはできません。
TRIM関数、LENGTH関数には入力パラメタを指定できません。
SUBSTRING関数の第1引数には入力パラメタを指定できません。
CONCAT関数に入力パラメタを複数指定することはできません。
Pessimistic Locking機能のLockNoWaitオプションは使用できません。
リレーションシップのあるEntityは、データベーステーブル自動生成機能を利用できません。
プライマリキー値の自動生成機能とデータベーステーブル自動生成機能を組み合わせることはできません。
プライマリキー値の自動生成機能でSequenceGeneratorを使用する場合、table属性の省略値である「SEQUENCE」は予約語のため使用できません。Symfowareのマニュアルを参照し、テーブル名に指定可能な値を指定してください。
使用するDBMSがSQL Serverの場合、以下に注意してください。
TRIM関数の変換文字は指定できません。空白が使用されます。
Pessimistic Locking機能は使用できません。