我有以下问题,Hibernate documentation未涵盖。或者我在那里找不到答案。谷歌搜索也没有给我详细信息。
如果我们使用Entity对象作为参数并使用Query.setParameter将其绑定到HQL,接下来会发生什么?
提前谢谢!
答案 0 :(得分:1)
就SQL而言,它只是使用id进行比较。您绑定的实体不必在该会话中进行管理,因为您的问题的评论建议。
基本上发生的事情是Hibernate将尝试解析它给出的实体实例的实体类型。然后,它将使用该类型绑定JDBC参数值,该参数值将仅写入标识符。因此,这里的假设是实体实例可以解析为其“实体类型”。在大多数情况下,这通常很容易。在Hibernate特定的“实体名称”功能的情况下变得困难的地方。