7.8. 注意制限事項
7.8.1. 注意事項
7.8.1.1. 複合Id利用時のJAX-RSリソースファイルメソッド生成について
複合Id(@IdClassまたは@EmbeddedId)利用時に、JAX-RSリソースファイルのdelete、find、criteriaFindメソッドは作成されません。
7.8.1.2. エンティティークラス解析のルールについて
エンティティーオペレータクラス、コンソールアプリケーション、JSF、RESTful Webサービスの雛形作成機能では、
エンティティークラスの主キーや各フィールドの情報を解析します。
まず、主キーの解析については、@EmbededId、@Id、@IdClassおよび@Embeddedクラス内の@Idフィールドの組み合わせに対して、以下の解析を行います。
- 単一の@Idフィールド のみの場合、この@Idフィールドを主キーとします。
- @EmbededIdフィールド のみ(IDクラスが@Idや@IdClassを含まない)の場合、この@EmbededIdフィールドを主キーとします。
- @IdClassと、1つ以上の@Idフィールドがあり、@IdClassクラスの内容は@Idフィールドと一致する場合、この@IdClassクラスを主キーとします。
- Entityクラスが@Id、@EmbeddedId、@IdClassを含まない、@Embeddedフィールドを含み、@Embeddedクラスが単一の@Idを含む場合、この@Embeddedクラス内の@Idフィールドを主キーとします。
なお、@Embedded のネストは3階層までとします。
エンティティークラスの各フィールドのアクセスには、getter/setterメソッドを利用します。
主キークラス、@Embededdedクラス内のフィールドのアクセスも、それぞれのクラス内のsetter/setterメソッドを利用します。
これにより、エンティティークラス、主キークラス、@Embededdedクラスの各フィールドに対して、それぞれのgetter/setterメソッドがない場合、雛形作成機能を利用する前に、getter/setterメソッドを追加してください。
フィールドの情報の解析については、エンティティークラスの以下タイプのフィールドを解析し、雛形クラスに生成します。
- Javaプリミティブ型:boolean、char、byte、short、int、long、float、double
- プリミティブ型のラッパー型:Boolean、Character、Byte、Short、Integer、Long、Float、Double
- java.lang.String
- java.math.BigDecimal
- java.math.BigInteger
- java.util.Date
- java.util.Calendar
- java.sql.Date
- java.sql.Time
- java.sql.Timestamp
以下のフィールドを解析しません。
- 集合型(Set、List、Map)、配列型
- ユーザ定義クラス(@EmbededId、@Embededdedで注釈されるフィールド除外)
- @ManyToMany、@ManyToOne、@OneToMany、@OneToOneで注釈されるフィールド
なお、雛形作成機能は、以下のアノテーションはまだサポートしていません。
7.8.1.3. アノテーションとORMマッピングファイルでの指定について
JPAの仕様上、アノテーションとORMマッピングファイルが同時に指定された場合、 ORMマッピングファイルの指定が優先されます。
一方、Jakarta EEではアノテーションの利用が推奨されるので、次に挙げるエンティティークラス
からの各種生成機能では、アノテーションでの指定を利用しています。
- JSFページ・クラス
- RESTful Webサービス
- コンソールアプリケーション
- エンティティーオペレータクラス
これにより、アノテーションとORMマッピングファイルの指定が相違する場合、
期待と異なる動作をする危険性があります。両者の指定は一致させてから、 各生成機能をご利用ください。
7.8.2. 制限事項
特にありません。