|
|
1
4
这两个示例都可以工作(在示例B中,Hibernate将 flush the session before query executions 因此,它将在select之前插入狗),但我看不到在已经有了dog实例的情况下执行额外的select(示例B)的意义。我只想举个例子A。
不(见上文)。在示例B中,狗不再是短暂的。在示例A中,插入将按正确的顺序进行。
第一级缓存(会话)用于按ID查找,这里不是这种情况。 |
|
|
2
2
从位于的文档 hibernate
从性能上讲,如果不打开与数据库的连接,那么为fido指向的对象分配引用会更快。 |
|
|
3
2
两者都能正常工作,但效率不一样。在B中,因为它执行一个查询,所以它不仅有查询本身的开销,而且还强制Hibernate刷新对数据库的更改-这些更改可能一直保存在内存中,直到提交事务,并与许多其他更改一起发送。 到数据库的连接通常具有很高的延迟,因此批处理用于一次发送许多更改,从而减少每个语句的延迟。将变更集分解成许多小的变更,每一条语句的开销比一组大的变更要高。因此,在可能的情况下,最好一起提交所有更改。 |
|
|
Gero Mendy · 如何为一个类分配兵变的结果。查询 2 年前 |
|
Hamvy B · 替换不推荐的hibernate方法 2 年前 |
|
Martin Pfeffer · Spring Boot JPA 2 年前 |
|
|
denstran · 休眠未生成正确的id 2 年前 |
|
|
Frank · 忽略/跳过Hibernate架构验证中的特定字段 2 年前 |