gpt4 book ai didi

java - 使用 hibernate 加载对象

转载 作者:行者123 更新时间:2023-12-01 15:16:01 26 4
gpt4 key购买 nike

我是 hibernate 新手。我有一个对象的主键值,需要从数据库加载一个对象。我读到可以使用 get() 或 load() 或使用 criteria API 来加载对象。

我有点困惑在哪种情况下哪个更好使用。有人可以指导我吗?

最佳答案

Session.get() 检查对象是否已在 session 中。如果是,则返回它。如果没有,它会执行一条 select 语句来加载 session 中对象的状态,然后返回它。这是您应该默认使用的方法。

Session.load() 检查对象是否已在 session 中。如果是,则返回它。如果不是,它会创建一个未初始化的代理并返回该代理。它甚至没有到达数据库。代理上调用的第一个方法将使 Hibernate 从数据库加载对象的状态,并初始化代理。当您只需要引用现有对象时,通常会使用此方法,例如初始化一对一关联。

条件查询或 HQL 查询将始终查询数据库。您不会使用它来执行与 Session.get() 相同的操作。通过主键加载对象并初始化关联(否则使用 Session.get() 会延迟加载)会很有用。如果您知道需要一个学生及其所有类(class),那么最好在单个查询中加载所有内容,而不是在一个查询中加载学生,然后在第二个查询中加载类(class)。

关于java - 使用 hibernate 加载对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11599806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com