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 –