Rub*_*ick 5 java hibernate many-to-one
我有以下场景(在Java/Hibernate中):
当我执行这个场景时,我希望看到一个查询:INSERT x.然而,实际发生的是Hibernate执行两个查询:
此外,我还注意到在x的持续存在之后,对y的引用实际上并没有被管理,并且会话中没有Y的实例!那么,为什么要执行SELECT上的SELECT呢?有办法防止这种行为吗?
您不需要(实际上您不应该)手动实例化 Y。您可以执行此操作的变体(取决于您的配置)
Y y = (Y) session.load(Y.class, pk);
Run Code Online (Sandbox Code Playgroud)
这不会从数据库中检索 Y,而是加载仅由您提到的 pk 组成的代理。
然后将 y 分配给 x,并保留 x 将按照您的预期运行。
| 归档时间: |
|
| 查看次数: |
425 次 |
| 最近记录: |