当前位置: 首页 > 面试题库 >

Hibernate:直接在Bean中设置ID或调用load()或get()方法之间有区别吗?

宇文育
2023-03-14
问题内容

以下是负载示例:

Stock stock = (Stock)session.load(Stock.class, new Integer(2));
           StockTransaction stockTransactions = new StockTransaction();
           //set stockTransactions detail
           stockTransactions.setStock(stock);        
           session.save(stockTransactions);

如果我像这样直接设置ID有什么区别?

Stock stock =new Stock();
stock.setId(2);
 StockTransaction stockTransactions = new StockTransaction();
               //set stockTransactions detail
               stockTransactions.setStock(stock);        
               session.save(stockTransactions);

正如我已经知道股票表的ID。是叫负载还是得到?


问题答案:

有什么区别 …

您的第一个代码示例从数据库中获取对象,因此加载的对象将处于持久状态。您的第二个示例将尝试StockTransaction使用 全新的
示例进行保存Stock。这可能会导致主键错误(如果库存编号是唯一的)或重复的条目。您应该根据需求选择使用哪种方式。如果您需要StockTransaction现有的Stock(我假设您是在写ID的情况下遇到这种情况)-您应该首先从数据库加载它。

是叫负载还是得到?

如果数据库中没有此类对象(具有此类ID),则Session.load()将返回具有空字段的代理。

如果没有具有此ID的对象,Session.get()将返回null。

使用哪一个取决于您和您的任务。我个人更喜欢get()



 类似资料:
  • 本文向大家介绍Hibernate中get()和load()之间的区别,包括了Hibernate中get()和load()之间的区别的使用技巧和注意事项,需要的朋友参考一下 在休眠模式下,and是两种用于获取给定标识符的数据的方法。它们都属于Hibernate会话类。如果给定标识符的会话高速缓存或数据库中没有可用的行,则方法返回null,而方法抛出未找到对象的异常。  序号 键 得到() 加载()

  • 问题内容: 和和有什么区别? 在哪个条件下使用哪个更好? 问题答案: 是最可配置的,您可以在其中对HTTP标头等进行精细控制。您还可以使用此方法直接访问XHR对象。还提供了更细粒度的错误处理。因此可能会更复杂并且通常没有必要,但有时非常有用。您必须自己通过回调处理返回的数据。 只是它的简写,但抽象了一些配置,为隐藏的内容设置了合理的默认值。将数据返回给回调。它仅允许GET请求,因此附有类似抽象的功

  • 本文向大家介绍请问Hibernate中Session的load方法和get方法的区别是什么?相关面试题,主要包含被问及请问Hibernate中Session的load方法和get方法的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:请求方式 参考回答: 主要有以下三项区别: ① 如果没有找到符合条件的记录,get方法返回null,load方法抛出异常。 ② get方法直接返回实体类

  • 问题内容: 在Python 2.7和3中,我使用以下方法来调用超类的函数: 我看到也可以在python3中用和替换。 这两种方式都有什么优点或缺点?至少直接从我这里调用它更有意义,但是也许有充分的理由只能在使用元类时使用(我通常会避免)。 问题答案: 对于单继承,只是引用基本类型的一种更简单的方法。这样,您可以使代码更具可维护性,例如,如果您想更改基本类型的名称。当您在各处使用时,只需在生产线中进

  • 问题内容: 我想知道SQL对这些连接语句执行的方式是否有所不同: 有性能差异吗?还是算法上的差异? 还是仅仅是语法糖? 问题答案: 性能没有差异。 但是,第一种样式是ANSI-89,在某些商店中,您的腿会折断。包括我的。第二种样式是ANSI-92,更加清晰。 例子: 哪个是JOIN,哪个是过滤器? 如果您有OUTER JOINs(,),则第二种样式将按照广告中的说明工作。第一个最有可能不会这样做,

  • 本文向大家介绍get()和 load()的区别?相关面试题,主要包含被问及get()和 load()的区别?时的应答技巧和注意事项,需要的朋友参考一下 数据查询时,没有 OID 指定的对象,get() 返回 null;load() 返回一个代理对象。 load()支持延迟加载;get() 不支持延迟加载。