Spring Boot でネイティブ クエリを使用していくつかのテーブルを結合したいと考えています。 クエリは次のようになります:
リーリー現在、[id]
と [arw_id]
で Hibernate NonUniqueDiscoveredSqlAliasException が発生しています。 using
アノテーションを使用して 2 番目のものを修正できますが、テーブルの id
はエンティティなので、名前を変更したくありません...
提案や Hibernate のバグはありますか?
###乾杯、 ニクラス編集: 明確にするために: 私が受け取った最初のエラー メッセージは
ネイティブ SQL クエリの自動検出中に重複した SQL エイリアス [arw_id] が発生しました; ネストされた例外は org.hibernate.loader でした。 [...]。
次に、クエリを次のように変更しました。
リーリー
となり、次のエラーが発生します。
employee
、c
、b
、a
のすべての列が本当に必要ですか? 結果を何に変換しますか?Employee
クラスに変換したい場合は、受信したエラーの原因が
id
とarw_id
であると確信できる理由は何ですか? これらは異なるフィールドであり、あなたが言及したエラーは発生しないはずです。または、c
またはb
またはa
に同じ列名があることが原因である可能性が最も高くなります。 この場合、列名があいまいになります。このクエリを使用しているコードを見せていただければ、より明確になるでしょう
######編集### ご覧のとおり、ON ではなく USING
を使用しただけです。これは、2 つのテーブル間で
arw_idを共有することを意味し、結果セット内の
arw_idの重複が排除されます。 これがあなたのIDでも同じ場合は、
idでも同じことをしてみてはいかがでしょうか?