我知道这是一个很多时候被描述的常见问题。 但我仍然无法得到一些东西 - 性能呢?哪种方法更快?其实,我需要一个简单的东西:页面发出一个POST请求:id = 0,name ='John'。服务器端脚本应检查id = 0,然后在数据库中创建新记录,否则更新现有。休眠:加载vs得到
我认为get()对我来说更有用,因为它将在DB中不存在记录时返回NULL,而load()可以返回一些temproray对象。 谢谢
我知道这是一个很多时候被描述的常见问题。 但我仍然无法得到一些东西 - 性能呢?哪种方法更快?其实,我需要一个简单的东西:页面发出一个POST请求:id = 0,name ='John'。服务器端脚本应检查id = 0,然后在数据库中创建新记录,否则更新现有。休眠:加载vs得到
我认为get()对我来说更有用,因为它将在DB中不存在记录时返回NULL,而load()可以返回一些temproray对象。 谢谢
下面是Hibernate的论坛,在我的谷歌查询的第一个结果(Hibernate load vs get
)等效问题的链接:https://forum.hibernate.org/viewtopic.php?p=2387456
有其规定如下:
的load()方法较旧;由于用户 请求,get()被添加到Hibernate的API中。差异是微不足道的:
如果load()无法在缓存或数据库中找到对象,则抛出异常 。 load()方法永远不会返回null。如果找不到对象,则get()方法返回 。
这将取决于很多事情。可能大部分是底层数据库。还有什么比例找到/未找到?从你的公式看,听起来好像你期望很多“错过”。 – vidstige
found/not found意味着具有这样的id的记录实际存在于DB中。比方说,我需要一些独特的方式来检查记录是否存在于数据库中(通过load()或get()方法),但不以牺牲性能为代价 – nKognito
此描述非常清晰http://gmarwaha.blogspot。 com/2007/01/hibernate-difference-between-sessions.html –