プライベートネットワーク上で作業しているため、コードをコピーして貼り付けるのが難しいです。私は必要なものに近い答えを見つけましたが、うまくいっていませんでした。私は私のコードの簡単な例をしようとします、うまくいけば私の問題を解読するのに十分です。マップハイバーネーションアノテーション付きテーブルの1列
@Table(name="DRIVER")
class Driver {
long id; //ID - primary key of Driver
String driverIdentStr; // DRIVER_IDENT_STR - like driver's license #
}//end class Driver
@Table(name="GROUP_PARTICIPANT")
class GroupParticipant {
long id; //ID - primary key of GroupParticipant
long driverId; //DRIVER_ID - id of the Driver participanting and maps to Driver.id
//I just want this one value from Driver and not the whole Driver...
//I've tried:
//@Formula("(select driverIdentStr from Driver where Driver.id = DRIVER_ID)")
//also tried:
//@Column(table="DRIVER", name="driverIdentStr")
String driverIdentStr;
}//end class GroupParticipant
は@Formulaは失敗しました「テーブルまたはビューが見つかりません」しかし、私は間違いなくDRIVERテーブルにドライバのクラス定義されたマッピングを持っています。 @Formulaのクエリ言語をHQLの代わりにSQLに変更したときHibernateはGROUPPARTICIPANT0.driverIdentStrが無効な識別子であると不満を持ちます.Driver(??)から値を取得する代わりにGroupParticipantからdriverIdentStrを取得しようとしていたと思います。
@Columnは、私がGroupParticipantに持っているdriverIdからDRIVERにマップする方法がわからないため、失敗します。
最終的に、GroupParticipant.driverIdentStrをDriver.idのGroupParticipant.driverIdに参加させ、Driver.driverIdentStrを取得する方法を理解できません。
ご協力いただければ幸いです。