私はそのようなエンティティの構造を持っています:
Product 1 -> N ProductCustomField
1 1
| |
M M'
Release 1 -> N' ReleaseCustomField
ProductCustomField
「プロトタイプ」のようなものです - Release が持つ可能性のあるフィールドのリストです。
Release
すべてReleaseCustomFields
のオブジェクトProductCustomField
がProduct
含まれる単一のオブジェクトを選択したいと思いますRelease
。
例:
MySoft には、デフォルト値が "" のカスタム フィールド "downloadURL" があります。MySoft にはリリース 1.0 があります。このリリースには ReleaseCustomFields はありませんが、MySoft のリリースであるため、"downloadURL" カスタム フィールドがある可能性があることがわかります。
そこで、「downloadURL」が定義されるマップ (デフォルト値は「」) を備えた MySoft 1.0 のリリースを希望します。
SQLで何をするかはわかっています。それは長くて複雑なSELECTですが、可能です。
JPA / Hibernateでそれを把握する方法がわかりません。
これが で達成しようとするのが正しいことかどうかはわかりませんSELECT
。たぶん、Release
のカスタムフィールドに INSERT を入力してから、単にマッピングに依存する必要があります (これは既に機能しています)。または、特別なクエリで満たされた に
特別なプロパティを作成する必要がありますか? (注釈Release
を使用してもかまいません。)または
、最も単純なことを行う必要があります。org.hibernate.*
release.getProduct().getCustomFields()
ProductCustomField
ReleaseCustomField
ProductCustomField#getDefault()