1
我有以下問題,這不包括在Hibernate documentation。或者我在那裏找不到答案。谷歌搜索並沒有給我的細節也。實體對象作爲HQL參數
如果我們使用Entity對象作爲參數並使用Query.setParameter將其綁定到HQL,接下來會發生什麼?
- hibernate是否只使用映射參數對象的實體ID來構建SQL'where'查詢?
- 或者Hibernate使用一些額外的邏輯(可能在某些情況下),它不僅限於ID?例如,hibernate在SQL中添加不是主鍵的附加字段。
- 使用分離的實體對象作爲參數是危險的嗎?
預先感謝您!
我覺得hibernate使用id的相關對象,但它可以是aplaid只有對象,它有命名屬性id,它會在sql中加入連接。當你通過它的id對象引用實體時,hibernate將不會使用join。此外,用作參數的對象必須附加到會話中。 –
你認爲如果一個對象沒有附加到一個會話中,會拋出異常?它看起來像我們的應用程序中沒有發生異常,並且對象被分離。我不確定這是否正常,我不應該附加保存數據庫流量的對象。 – Sqeezer
我不確定這一點,但如果它的工作,你可以使用它。但我認爲直接使用對象屬性來設置參數會更好。 object.anotherobject.id = comparatorobject.id –