Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:load vs get_Java_Hibernate - Fatal编程技术网

Java Hibernate:load vs get

Java Hibernate:load vs get,java,hibernate,Java,Hibernate,我知道这是一个经常被描述的问题。 但我还是得不到一些东西——性能呢?哪种方法更快 实际上,我需要一件简单的事情:页面发出POST请求:id=0,name='John'。服务器端脚本应该检查id是否为0,然后在DB中创建新记录,否则更新现有记录 我认为get()对我更有用,因为如果数据库中不存在记录,它将返回NULL,而load()可以返回一些temproray对象。。我说得对吗? 谢谢这里有一个链接,指向Hibernate论坛中的相同问题,这是我google查询的第一个结果(Hibernate

我知道这是一个经常被描述的问题。 但我还是得不到一些东西——性能呢?哪种方法更快

实际上,我需要一件简单的事情:页面发出POST请求:id=0,name='John'。服务器端脚本应该检查id是否为0,然后在DB中创建新记录,否则更新现有记录

我认为get()对我更有用,因为如果数据库中不存在记录,它将返回NULL,而load()可以返回一些temproray对象。。我说得对吗?
谢谢

这里有一个链接,指向Hibernate论坛中的相同问题,这是我google查询的第一个结果(
Hibernate load vs get
):

该条规定如下:

load()方法较旧;由于用户原因,get()被添加到Hibernate的API中 要求差别很小:

如果load()在缓存或数据库中找不到对象,则会出现异常 扔。load()方法从不返回null。get()方法返回 如果找不到对象,则为null


这将取决于很多事情。可能是最底层的数据库。发现/未发现的比率是多少?从您的公式中,听起来好像您期望有很多“未命中”。found/not found表示具有此类id的记录实际上存在于数据库中。比如说,我需要某种独特的方法来检查记录是否存在于数据库中(通过load()或get()方法),但不会以牺牲性能为代价。这个描述非常清楚,是的,但比率是多少,即“未找到”与“找到”的概率是多少。廉价的解决方案是对id列中使用的表执行计数查询。若要检索的对象很大,只需检查数据库中的对象,这可能会有所帮助。问题更像是:load()方法比get()快吗?或许是恶习versa@nKognito查看Hibernate3.4源代码没有太大区别。实际上,调用相同的方法时,只需上述检查中的差异。因此,我们可以说方法get更快,因为她不需要块try-catch。您永远不会注意到性能差异,因为它会被代码中的其他特性淹没:糟糕的模式、缺少索引、低效的对象模型,等等,不要担心像这样的纳米优化。