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