私が3つの抽象的なスーパークラスを持っていると仮定しましょう:SuperA、、。これらのスーパークラスのそれぞれに、より具体的な実装がたくさんあり、すべてのスーパークラスに。という注釈が付けられているとします。SuperBSuperC@Inheritance(strategy = InheritanceType.JOINED)
より具体的に:
Aa<-そして(プロパティ)SuperAのリストがあります。SuperBbbsBb<-そして(プロパティ)SuperBのリストがあります。SuperCccsCc<-SuperCそしてfooプロパティがあります。
foo次に、次のようなクエリを実行すると、タイプ内のプロパティが見つからないというエラーが発生しましたSuperC。Bb抽象型のリストがあり、それを変更することはできません。そのため、クエリを機能させる方法がわかりません。
select a from Aa a left outer join a.bbs b where b.ccs.foo = :foo
どんなヒントでも役に立ちます。前もって感謝します。
編集:
ところで:例外:
org.hibernate.exception.SQLGrammarException: Unknown column 'cc3_1_.foo' in 'where clause'
編集2:
JPAドキュメントを探して、Hibernateを使用していない場合に機能するものを見つけました。
編集3:
2つのSQLを使用するように変更します。まず、プロパティに基づいてCのIDを見つけ、foo次にIDと比較してクエリを実行します。
ここでの問題は、これが必要になるたびに2つのSQLを実行する必要があることです...しかし、少なくともそれは機能します。